Дублирующие повторители, идентичные UpdatePanels - PullRequest
2 голосов
/ 29 мая 2011

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

 <asp:Repeater ID="rptTest" runat="server">
    <ItemTemplate>
        <asp:UpdatePanel runat="server" ID="updTestPanel">
            <ContentTemplate>
                <asp:TextBox ID="txtTest" runat="server" />
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:TextBox ID="txtTest2" runat="server" />
    </ItemTemplate>
</asp:Repeater>

<asp:Repeater ID="rptTest2" runat="server">
    <ItemTemplate>
        <asp:UpdatePanel runat="server" ID="updTestPanel">
            <ContentTemplate>
                <asp:TextBox ID="txtTest" runat="server" />
            </ContentTemplate>
        </asp:UpdatePanel>
        <asp:TextBox ID="txtTest2" runat="server" />                            
    </ItemTemplate>
</asp:Repeater>

Вот в чем дело: txtTest2 хорошо повторяется в обоих повторителях, но txtTest выдает следующие ошибки:

Ошибка 4 «txtTest» уже объявлена ​​как «Protected WithEvents txtTest как System.Web.UI.WebControls.TextBox» в этом классе.

Ошибка 5 'Функция частной перегрузки __BuildControltxtTest ()Поскольку System.Web.UI.WebControls.TextBox »имеет несколько определений с одинаковыми сигнатурами.

Ошибка 8« txtTest »уже объявлен как« Protected WithEvents txtTest как System.Web.UI.WebControls.TextBox »в этомкласс.

Есть ли способ сделать то, что я пытаюсь сделать, или мне нужно переосмыслить то, как я вызываю асинхронные данные в повторителе?

Ответы [ 2 ]

0 голосов
/ 29 мая 2011

Если у вас есть элементы управления DataBound (Repeater, DataList, FormVeiw и т. Д.) И под панелью обновления, эти элементы управления будут иметь область действия уровня страницы. Вы должны дать им уникальные идентификаторы, так как я не думаю, что есть другой способ обойти эту проблему. Если вы заметили, что эти элементы управления доступны на странице, без использования FindControl.

0 голосов
/ 29 мая 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...