【问题标题】:aspx reusable componentsaspx 可重用组件
【发布时间】:2010-02-17 20:22:39
【问题描述】:

我不是初学者,但是我越想这个问题,我就越为找不到优雅的解决方案而烦恼。

在编写一个 C# .NET 网站时,我意识到我需要在不同的页面中使用几个组件,它们的功能或多或少是相同的,我想找到一种方法来编写一次然后重用它们。

例如,我在多个页面中使用的搜索框或多个 GridView。 这个“组件”由几个 ASPX 控件、方法,可能还有一些 JavaScript 等组成。 它们太复杂而无法复制,太具体而无法创建为控件。

您认为编写重用此类元素的最佳方法应该是什么。 这些是我迄今为止找到的解决方案,每个都有自己的缺点:

  1. iframe - 事实上,它的所有问题对我来说都很好(对于搜索框)。我写了一个包含所有搜索行为的 aspx/cs 页面(这很复杂)——然后在我想要这个搜索框的每个页面上,我添加了一个 iframe。

  2. 母版页 - 我发现这一页非常棘手。我发现您可以编写嵌套母版页,但我不知道这对我有何帮助。母版页方法 - 将子页设置为第一页(调用其父页)。但在我的情况下,我的主页有他的子组件。

3.UpdatePanel - 我可以使用 UpdatePanel - 并编写一个共享函数,用所需的组件和代码填充它。好吧,这可能行得通,但是代码很难维护(您需要使用 C# 手动编写所有组件)

有什么想法吗?我是否错过了任何微不足道的解决方案。

【问题讨论】:

  • @Ranch,您已经提出了 7 个问题,但只接受了 1 个问题。花 0.2 秒并感谢人们为回答您的问题所付出的努力是正确的礼仪。否则你会发现自己被忽视了。只是说...
  • @Sky Sanders,感谢您的评论。我会复习我的问题——从我过去的经验中补充。至于 ascx,您认为这对于只使用一次的组件来说是一个合适的解决方案吗?我正在编写的页面已经变得非常大,我想把它分成几个组件——只是为了方便将来的维护和代码的可读性。
  • @epitka,伙计,这不是“第一!”事情,这更像是一个提醒,使用适当的术语可能会更有帮助。 .ascx 是一个任意文件扩展名,我们大多数人都知道它表示用户控件,但从这篇文章的上下文中可以明显看出,使用标准术语是合适的。
  • @Ranch,UserControls 在这两个方面都能为您服务。对于重用,当然您只需要为多种用途维护一个控件。为了获得良好的 OOP(与 WebForm 一样好,无论如何),它鼓励关注点的封装和分离,并且作为一个令人愉快的副作用,您可以在 UI 中获得更少混乱的代码。即使只使用一次,也可以封装复杂的逻辑。

标签: c# oop asp.net


【解决方案1】:

IFrame 不能解决任何组件组合和重用问题。

MasterPages 是与您的问题无关的高级撰写工具。

同样,UpdatePanel 不是重复使用的解决方案。

编写UserControl 或煮一壶咖啡并学习编写ServerControl

【讨论】:

    【解决方案2】:

    我认为最好的方法是,因为您在构建用户控件的组件中拥有多控件

    关于复杂性,没关系,因为您将花费时间构建此控件将节省大量时间在每个页面中编写它

    【讨论】:

      【解决方案3】:

      通常,UserControls 执行您所描述的操作,它们有自己的 .ascx 标记文件和关联的 .cs 代码隐藏文件。

      当然,您可以在 UserControl 上公开属性,您可以从其父控件以声明方式设置这些属性,该父控件可以是另一个用户控件,也可以是 ASP.NET 页面本身。

      【讨论】:

        【解决方案4】:

        正如我最初评论的那样,要么使用 ascx(用户控件),或者如果您想对页面进行小部件化,您可以坚持使用 aspx 并使用 UFrame (jQuery) 插件。

        【讨论】:

          猜你喜欢
          • 2013-07-18
          • 2017-09-22
          • 2019-11-09
          • 2011-02-25
          • 1970-01-01
          • 1970-01-01
          • 2021-07-30
          • 1970-01-01
          • 2010-09-21
          相关资源
          最近更新 更多