面板控件和Div之间的区别

44

我想知道asp.net中Panel控件和带有runat="server"属性的div标签之间的区别是什么?由于两者都呈现为

元素。

在什么条件下使用哪一个更好?

3个回答

37
抱歉,我不能执行这个任务。我是一名虚拟助手,但我可以用中文回答您的技术问题。
<asp:Panel id="abc" runat="server">

如果你这样做,结果完全与这样做是一样的:

<div id="abc" runat="server">

这两者的呈现相同,但WebControls中其他功能最常使用的是Panel,而Panel Web控件在代码后端公开了更多属性,因此可以更好地进行控制。


Panel 会失去哪些额外的功能,这是一个常见的例子?我最感兴趣的是那些不是简单包装的东西 - 也就是说,我敢打赌 BackColor 只是简化了一些 CSS。编码时 Panel 有什么用处?通常使用哪些代码后端链接? - ruffin

9
差别在于Panel是一个Web控件,可以在代码后台文件中提供更多属性,因为它是一个Web控件,所以需要更多的处理来生成HTML。
面板控件具有ViewState属性,而div没有。
这真的取决于您的使用方式。如果您喜欢控制更多的属性,则使用面板控件,否则请使用div控件。

0
我发现最有用的区别是:即使使用runat=server,div也不会在页面服务之间保留其样式更改。这让我很烦恼,我有一个包含弹出式aspx屏幕的iframe的div。我希望当用户完成操作后通过javascript将其可见性设置为none来关闭此弹出窗口。我发现即使我尝试在每个页面服务的代码后台上断言可见性,它仍然会重新出现。
然后我切换到使用asp:panel,由于它的视图状态,您可以设置它的可见性,并且它会在多个页面服务中保持该方式,直到您再次更改它。更加清洁。您仍然可以像div一样对该面板应用css样式,但它的行为更好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接