在两页之间共享通用设计器代码

时间:2013-04-25 12:35:38

标签: c# asp.net inheritance

我正在创建同一页面的两个版本。所以我想创建一个共同的祖先但我需要从该代码访问一些控件,所以最好的方法是在共享的designer.cs文件中使用一组公共控件,但ASP.Net将重新创建那些对于每个页面(由于公理化),只要它到达aspx文件上具有相同ID的asp标记。 有没有办法做到这一点呢?

Exmple(代码看起来很像):

common.cs

partial class CommonClass [...]
    Function X
        Do something with MyRepeater

common.designer.cs(或其他文件名)

partial class CommonClass
    protected global::System.Web.UI.WebControls.Repeater MyRepeater;

page1.cs

Page1 : CommonClass

page1.aspx这个

[...]
<asp:Repeater ID="MyRepeater" runat="server" [...]

page2.cs

Page2 : CommonClass

page2.aspx

[...]
<asp:Repeater ID="MyRepeater" runat="server" [...]

编辑: page1和page2允许用户查看表并更改其内容(还有其他几个控件)。 page1使用一组对象填充表。 page2使用一组完全不同的对象填充表格。 然而,page1和page2填充数据的方式是相同的(3个中间表是从这组对象构造的),而且它非常复杂。 由于它是相同的(并且相当复杂),我喜欢将填充逻辑放在一个公共文件中,但由于填充逻辑依赖于某些中继器,我需要在公共页面中定义这些中继器。

1 个答案:

答案 0 :(得分:0)

现在我已经运行了一些新测试,显然Asp.Net非常聪明,不会重新定义已经在父类中定义的部分设计器类控件。

甜。它正在发挥作用。