你能用“runat = server”属性向我解释控件和html组件之间的区别吗?使用它的最佳做法是什么?感谢。
答案 0 :(得分:1)
<span runat="server" id="myspan"> </span>
映射到System.Web.UI.HtmlControls中定义的GenericControl类。从它的msdn描述:
System.Web.UI.HtmlControls命名空间包含允许的类 您在Web窗体页上创建HTML服务器控件。 HTML服务器 控件在服务器上运行并直接映射到标准HTML标记 大多数浏览器都支持。这允许您以编程方式 控制Web窗体页面上的HTML元素。
<asp:Label runat="server" id="asplabel"></asp:Label>
映射到System.Web.UI.WebControls中的Label类。从它的msdn描述
System.Web.UI.WebControls命名空间包含允许的类 您要在网页上创建Web服务器控件。 Web服务器控件 在服务器上运行并包含表单控件,如按钮和文本 框。它们还包括特殊用途控件,如日历。 由于Web服务器控件在服务器上运行,因此可以 以编程方式控制这些元素。虽然是Web服务器控件 呈现为HTML,其对象模型不一定反映 HTML语法。
System.Web.UI.WebControls命名空间包含的类 呈现为HTML标记,例如TextBox控件和ListBox 控制。命名空间还包含未呈现的类 Web页面,但支持数据操作,如SqlDataSource 和ObjectDataSource类。其他控件,如GridView和 DetailsView控件,支持数据显示和编辑。 WebControl class作为许多类的基类 System.Web.UI.WebControls命名空间。
基本上,来自WebControl命名空间的控件为您提供了更多功能,其设计目标是尽可能地模仿VB6表单,以便无缝地在winclient和webclient编程之间进行转换(返回初始)。
我个人倾向于尽可能地使用来自WebControls命名空间的控件,并且如果我需要在WebControl上不可用且不可重写的行为,则只回退到HtmlConttols。
来自K. Scot Allen的同一主题的blog
答案 1 :(得分:0)
服务器控件是服务器可以理解的标签。
有三种服务器控件: HTML服务器控件 - 传统的HTML标签 Web服务器控件 - 新的ASP.NET标记 验证服务器控件 - 用于输入验证
HTML服务器控件:
默认情况下,ASP.NET文件中的HTML元素被视为文本。要使这些元素可编程,请添加一个runat =&#34;服务器&#34;属性为HTML元素。
示例:
<form runat="server">
......
</form>
Web服务器控件:
Web服务器控件是服务器可以理解的特殊ASP.NET标记。
与HTML服务器控件一样,Web服务器控件也在服务器上创建,它们需要一个runat =&#34;服务器&#34;属于工作。但是,Web服务器控件不一定映射到任何现有的HTML元素,它们可能代表更复杂的元素。
示例:
<asp:Button ID="but" runat="server"/>
验证服务器控件:
验证服务器控件用于验证用户输入。如果用户输入未通过验证,则会向用户显示错误消息。
示例:
<asp:RequiredFieldValidator ID="req1" runat="server" ControlToValidator="TextBox1" ErrorMessage="please enter proper details"/>