Шаблоны FormView ломаются при рефакторинге на Master / Content

Скажем, у меня есть абстрактный класс IA с подклассами A1, A2, A3.

Для каждого подкласса у меня была страница с FormView для вставки / редактирования / просмотра с кодом, специфичным для этого класса. Все шаблоны для вставки / редактирования / просмотра очень похожи, поэтому в основном это было вырезано и вставлено, и у компилятора не было проблем с тем, что в разных шаблонах были элементы управления с одинаковыми идентификаторами.

Что-то вроде этого:

<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.

По какой-то причине он не разделяет элементы управления в блоках содержимого так, как это было, когда они были в шаблонах, даже несмотря на то, что заполнители содержимого находятся в отдельных шаблонах.

Есть ли способ обойти это, кроме как переименовать все мои элементы управления?


person PhilChuang    schedule 27.04.2010    source источник
comment
Похоже, у кого-то была аналогичная проблема: stackoverflow .com / questions / 2335843 /   -  person PhilChuang    schedule 28.04.2010


Ответы (1)


Я отказываюсь от этой тактики в ответ на следующий вопрос: FormView на главной странице не может видеть элементы управления привязкой к данным через границу ContentPlaceHolder, похоже, разрушает любую надежду на то, что это будет работать так, как я хочу.

person PhilChuang    schedule 27.04.2010