aspx可重用组件

时间:2010-02-17 20:22:40

标签: c# oop asp.net

我不是初学者,但是我对这个问题的思考越多,我就越没有找到优雅的解决方案。

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

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

您认为应该是编写重用这些元素的最佳方法。 这些是我到目前为止找到的解决方案,每个解决方案都有各自的缺点:

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

  2. 母版页 - 我发现这个版本非常棘手。我发现你可以写一个嵌套的母版页,但我无法弄清楚这对我有什么帮助。主页面方法 - 将子页面设置为第一页(调用其父主页)。但在我的情况下,我的主页面上有他的子组件。

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

    有什么想法吗?我错过了任何简单的解决方案。

4 个答案:

答案 0 :(得分:3)

IFrame不是任何组件组合和重用问题的解决方案。

MasterPages是一个与您的问题无关的更高级别的合成工具。

UpdatePanels再次不是重用的解决方案。

撰写UserControl或煮一壶咖啡,学会写ServerControl

答案 1 :(得分:0)

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

关于complixty,没关系,因为你花在构建这个控件上的时间将节省大量时间在每个页面中编写它

答案 2 :(得分:0)

通常,UserControls执行您所描述的内容,它们拥有自己的.ascx标记文件以及相关的.cs代码隐藏文件。

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

答案 3 :(得分:0)

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