【问题标题】:ASP.Net Custom controls vs. user controls: Are these two the sameASP.Net 自定义控件与用户控件:这两个是否相同
【发布时间】:2009-03-23 13:30:40
【问题描述】:

如果它们不同,在什么情况下我们应该决定使用哪一种方法?

另外,ascx 比 aspx 有什么优势?

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    用户控件是一种自定义控件,可为您提供可视化设计器。当您希望在同一网站中使用可重复使用的控件时,它们非常适合使用。 (可以将用户控件创建和打包为单独的程序集,但这超出了这个问题的范围,我知道在 SO 上已被问到)。

    自定义控件通常用于指代 Web 控件或复合控件,它是 Web 控件的特殊形式。这些控件没有设计器,通常在与您的 Web 不同的项目中实现,从而允许它们在许多站点中重复使用。

    现在你的第二个问题,ASCX 和 ASPX 是两个不同的东西。 ASCX 是用户控件的扩展,而 ASPX 是 ASP.Net 页面。您不能单独使用 ASCX,它必须放在 ASPX 或母版页上。

    我喜欢使用用户控件的一种方法是,例如,我有一个非常复杂的页面,它有 7 个选项卡,其中 5 个有网格,其中三个网格是相同的。那么我能做的是为选项卡的内容创建一个单独的用户控件,这现在大大减少了我需要的代码(因为除了数据之外三个网格是相同的)。

    此外,它还允许多人在页面的各个部分上工作,并且由于我降低了页面的复杂性,它帮助我保持一切正常。您不使用用户控件而不是页面,而是将它们与页面结合使用。

    编辑

    您不要使用 ascx 而不是 aspx。您使用 ascx 来补充。例如,在我的网站上,每个页面都有相同的页脚,但我不希望每个页面都源自单个母版页。我可以将页脚创建为 acsx 控件并将其放在我的每个母版页中。

    另一个例子,我有一个表单可以让用户输入三个不同的日期范围。 (我们还有其他形式)。所以我把启用日历按钮的逻辑和一个文本框放在用户控件中打开日历。然后我可以在我的所有 aspx 页面中重用该用户控件。

    【讨论】:

    • 那么使用 ascx 比 aspx 有什么优势
    【解决方案2】:

    自定义控件是完全在代码中构建的控件。优点是您可以将它们放入库中,在工具箱中添加图标以及其他精细控制。

    用户控件更容易实现,通常是一种封装事物以简化其他页面或需要在多个页面中使用相同标记的方法。

    控件优于常规 aspx 页面的优点是您只需要做标记的一部分(而不是整个页面)

    【讨论】:

      【解决方案3】:

      用户控件/复合控件

      由其他 ASP.Net 或自定义控件组成的用户控件。它们通常非常简单,并且可以很快创建。它们通常不会在项目之间共享,但是有一些 tricks 可以让您这样做。

      自定义控件

      自定义控件是您通过创建从 HTML 输出到设计时支持的所有内容来实现 UI 的控件。自定义控件需要更长的时间来制作。您必须使用 Web.UI.Control 或从子控件(例如文本框)继承。自定义控件被编译为二进制格式,以便更轻松地分发它们。由于它们是编译的,因此可以从 Visual Studio 的工具箱中引用它们。

      aspx 页面中使用控件有两个主要优点。封装逻辑和可重用性。

      【讨论】:

      • 那么 ascx 比 aspx 有什么优势呢
      • 要清楚,您不能用用户控件替换 aspx 页面。
      猜你喜欢
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多