0

假设我有一个抽象类 IA,它有子类 A1、A2、A3。

对于每个子类,我都有一个带有要插入/编辑/查看的 FormView 的页面,其中包含特定于该类的代码。插入/编辑/查看的模板都非常相似,所以大部分都是剪切粘贴,编译器没有问题,不同模板中有相同ID的控件。

像这样的东西:

<asp:FormView>
    <InsertItemTemplate>
        <asp:Label id="Label1" />
    </InsertItemTemplate>
    <EditItemTemplate>
        <asp:Label id="Label1" />
    </EdittItemTemplate>
</asp:FormView>

大部分代码/标记最终在页面中是多余的,因此我将其重构为使用主/内容格式,主页面具有用于插入/编辑/查看模板的内容占位符。

母版页:

<asp:FormView>
    <InsertItemTemplate>
        <asp:ContentPlaceHolder ID="InsertItemTemplate"></asp:ContentPlaceHolder>
    </InsertItemTemplate>
    <EditItemTemplate>
        <asp:ContentPlaceHolder ID="EditItemTemplate"></asp:ContentPlaceHolder>
    </EdittItemTemplate>
</asp:FormView>

和内容页面:

<asp:Content ContentPlaceHolderID="InsertItemTemplate">
    <asp:Label id="Label1" />
</asp:Content>
<asp:Content ContentPlaceHolderID="EditItemTemplate">
    <asp:Label id="Label1" />
</asp:Content>

在内容页面模板中,我正在做与重构之前完全相同的事情,但现在编译器因错误而崩溃BC30260: 'Label1' is already declared as 'Protected WithEvents Label1 As System.Web.UI.WebControls.Label' in this class.

出于某种原因,它并没有像在模板中那样分离内容块中的控件,即使内容占位符在各个模板中也是如此。

除了重命名我的所有控件之外,有没有办法解决这个问题?

4

1 回答 1

0

我放弃了这种策略,因为这个问题:母版页上的 FormView 无法通过 ContentPlaceHolder 边界看到数据绑定控件似乎破坏了这种按我想要的方式工作的任何希望。

于 2010-04-27T23:46:33.403 回答