Html控件和asp.net Web控件

Shi*_*kha 6 asp.net

我想知道Html控件之间究竟有什么区别

和asp.net网页控制.为什么我们需要这两种类型的控件?

我在我的网页上放置了一个html输入文本,html按钮和asp.net文本框以及ASP.NET BUTTON

    <input id="Text1"    type="text" />

    <input id="Button2" type="button" value="button" />







    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    <asp:Button ID="Button1" runat="server" Text="Button" />
Run Code Online (Sandbox Code Playgroud)

当我获取视图源时,两者都是相似的

    <input id="Text1"    type="text" />

    <input id="Button2" type="button" value="button" />




    <input name="TextBox1" type="text" id="TextBox1" />

    <input type="submit" name="Button1" value="Button" id="Button1" />
Run Code Online (Sandbox Code Playgroud)

Web控件优于html控件的优点是什么?

我在互联网上得到了一些链接,但不清楚到底是什么

它们用于.

http://www.extremeexperts.com/Net/FAQ/DiffBetweenServerandHTMLControls.aspx.

任何人都可以解释这两个控件之间的区别.

Tho*_*mas 5

首先,如果您将Html控件从工具箱拖到设计图面上,如示例所示,则创建的标记不包含runat ="server".这意味着它是本机Html标记而不是.NET控件.没有runat ="server"的本机Html标记没有服务器端功能.因此,您无法在代码隐藏中设置"Text1"输入标记的值.

其次,一旦将runat ="server"添加到Html输入标记,就可以将它从本机Html标记转换为源自System.Web.UI.Control的HtmlControl.现在问题可能会变成派生自System.Web.UI.Control和System.Web.UI.WebControl的东西之间的差异.但是,要专门解决您的问题,让我们将标准输入类型="文本"控件与TextBox控件进行比较:

  1. TextBox控件可以从代码隐藏处访问,其中输入控件不能(不容易),这也意味着您可以为TextBox控件连接服务器端事件,而不能使用标准Html控件.
  2. TextBox控件使用ViewState自动保存其值.
  3. TextBox控件可以使用Theme和.skin文件进行蒙皮,而本机Html控件则不能.
  4. TextBox可以呈现为输入类型="文本"控件或textarea,具体取决于其TextMode属性.
  5. TextBox控件可以使用验证器参与验证.
  6. 最后但并非最不重要的是,TextBox控件可以使用控件适配器在不同的浏 请参阅http://msdn.microsoft.com/en-us/magazine/cc163543.aspx.

现在,所有这一切,如果您不需要任何WebControl功能,那么使用本机Html控件实质上更精简.在您的示例中,您只需将两个空控件拖到设计图面上即可.如果这就是你所需要的,那么使用.NET控件将是过度的.但是,当您开始添加自动完成和服务器端事件等时,进入浏览器的完整内容,Javascript和所有内容都要大得多.


Sho*_*ikh 1

简而言之,HTML 控件在回发时不会保留其状态。另一方面,ASP.Net 控件让您可以在多次回发时自动保存其状态。使用 ASP.Net 控件而不是 HTML 元素时的不同之处在于:

<input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+.................." />

该隐藏字段由 ASP.Net 自动生成,它包含 value 属性中的所有控件状态。