我正在创建同一页面的两个版本。所以我想创建一个共同的祖先但我需要从该代码访问一些控件,所以最好的方法是在共享的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个中间表是从这组对象构造的),而且它非常复杂。 由于它是相同的(并且相当复杂),我喜欢将填充逻辑放在一个公共文件中,但由于填充逻辑依赖于某些中继器,我需要在公共页面中定义这些中继器。
答案 0 :(得分:0)
现在我已经运行了一些新测试,显然Asp.Net非常聪明,不会重新定义已经在父类中定义的部分设计器类控件。
甜。它正在发挥作用。