【问题标题】:What's the difference between System.Web.UI.HtmlControls and System.Web.UI.WebControlsSystem.Web.UI.HtmlControls 和 System.Web.UI.WebControls 有什么区别
【发布时间】:2008-12-29 18:29:34
【问题描述】:

我正在比较每个命名空间的两个基类,有点困惑。

System.Web.UI.WebControls.WebControl
System.Web.UI.HtmlControls.HtmlControl

我看到两者之间的细微差别。例如,HtmlControl 的属性要少得多,而 WebControl 有很多属性,例如 CssClass 属性。除了额外的属性之外,WebControl 基类在处理渲染的方式上似乎更加健壮。

为什么需要有两个命名空间和两组几乎相同的控件?

【问题讨论】:

    标签: asp.net controls


    【解决方案1】:

    System.Web.UI.HtmlControls 中的控件只是实际 HTML 控件的薄包装。 System.Web.UI.WebControls.WebControl 是您的标准 ASP.NET 控件。

    稍微扩展一下:

    System.Web.UI.HtmlControls 命名空间包含允许 您可以在其上创建 HTML 服务器控件 Web 表单页面。 HTML 服务器控件 在服务器上运行并直接映射到 大多数支持的标准 HTML 标签 浏览器。这使您可以 以编程方式控制 HTML Web 表单页面上的元素。

    【讨论】:

    • 但是如果我有一个几乎相同的 System.Web.UI.WebControl,为什么不直接使用那个呢?性能真的有那么大的不同吗?
    • 除非你有特定的理由使用 HtmlControls,否则我会坚持使用 WebControls。
    【解决方案2】:

    RadioButtonList 是一个 ASP.NET WebControl。但是 HTML 中不存在这样的控件 - 在 HTML 中,您将拥有一组类型为“radio”的 INPUT 控件,它们共享相同的 name 属性值。

    因此,WebControl 是呈现为 HTML 控件的 ASP.NET 控件。 HtmlControl 是页面上 HTML 控件的实际表示。

    【讨论】:

    • 我假设你的意思是收音机类型?
    • @R.贝姆罗斯,谢谢。 :) 我忘了我用的是哪个控件作为例子。
    【解决方案3】:

    来自w3schools

    如 HTML 服务器控件、Web 服务器 控件也创建在 服务器,他们需要一个 runat="server" 属性起作用。 但是,Web 服务器控件不 必须映射到任何现有的 HTML 元素,它们可能代表更多 复杂的元素。

    Web 控件通常更强大一些,但也需要更多资源来动态生成相应的 HTML。

    【讨论】:

      猜你喜欢
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      • 2011-11-22
      • 2015-03-26
      • 2013-08-19
      相关资源
      最近更新 更多