0

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

示例(代码看起来很相似):

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 个中间表是从一组对象构造的),而且非常复杂。由于它相同(并且非常复杂),我希望填充逻辑位于一个公共文件中,但由于该填充逻辑依赖于一些转发器,因此我也需要在公共页面中定义这些转发器。

4

1 回答 1

0

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

甜的。它正在工作。

于 2013-04-25T14:38:43.183 回答