我喜欢HtmlControls,因为它没有什么神奇之处。asp源代码看起来与客户端看到的内容相似。
我不能反对GridView,Repeater,CheckBoxLists等的实用工具,所以当我需要这些功能时,我就会使用它们。
此外,拥有混合和匹配的代码看起来很奇怪:
<asp:Button id='btnOK' runat='server' Text='OK' />
<input id='btnCancel' runat='server' type='button' value='Cancel' />(在上面的例子中,您希望将服务器端事件侦听器绑定到OK,但取消只是运行一个隐藏当前div的javascript )
有什么权威的风格指南吗?应该避免使用HtmlControls吗?
发布于 2008-09-12 00:09:16
当您想要对最终由页面发出的标记进行更多控制时,将HTML控件视为一种选项可能会很有用。更多的控制,在某种意义上,你希望每个浏览器都看到完全相同的标记。
如果您像这样创建System.Web.UI.HtmlControls:
<input id='btnCancel' runat='server' type='button' value='Cancel' />然后,您就知道将发出什么类型的代码。即使大多数时候:
<asp:Button id='btnCancel' runat='server' Text='Cancel' />将最终成为相同的标记。并非所有WebControls都会发出相同的标记。许多WebControls都内置了自适应呈现,可以根据浏览器用户代理呈现不同的HTML。例如,DataGrid在移动浏览器中的外观与在桌面浏览器中的外观完全不同。
使用WebControls而不是HtmlControls还可以让你利用ASP.NET v2.0 ControlAdapters,我相信它只适用于WebControls,这将允许你以编程配置驱动的方式控制发出的标记。
当您考虑到某些移动浏览器或WebTV将需要WML或完全不同的标记集时,这似乎更有价值。
发布于 2008-09-12 00:00:16
根据我的经验,两者几乎没有什么不同。正如Darren所说,如果您不需要服务器端功能,那么HTML控件可能影响较小。
别忘了,您只需添加一个runat="server“指令和一个ID,就可以将服务器端功能添加到几乎任何HTML控件上。
发布于 2008-09-11 23:55:03
好吧..。如果你不需要在服务器上做任何事情,我就不会使用html控件。我会这么做的
<input id='btnCancel' type='button' value='Cancel' />鱼鳍。
https://stackoverflow.com/questions/57958
复制相似问题