Вызов модального всплывающего окна с помощью TargetControl в другой UpdatePanel в ASP.NET - PullRequest
2 голосов
/ 16 апреля 2009

Я пытаюсь вызвать модальное всплывающее окно, но TargetControl находится в другой панели обновления, чем та, где находится ModalPopupExtender.

Вот код:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server"  UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server">
        Test
        </asp:Panel>
        <cc1:ModalPopupExtender ID="Panel1_ModalPopupExtender" runat="server" 
            DynamicServicePath="" Enabled="True" TargetControlID="LinkButton1" PopupControlID="Panel1">
        </cc1:ModalPopupExtender>
    </ContentTemplate>
</asp:UpdatePanel>

Когда я запускаю страницу, появляется ошибка «Расширитель не может быть в другой UpdatePanel, нежели элемент управления, который он расширяет». показано.

Я пытаюсь поместить оператор Triggers в UpdatePanel2, но ничего не меняется:

<Triggers>
        <asp:AsyncPostBackTrigger ControlID="LinkButton1" EventName="Click" />
    </Triggers>

Возможно ли это сделать? Спасибо

1 Ответ

6 голосов
/ 16 апреля 2009

Переместите расширитель на первую панель обновления:

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
                <ajaxToolkit:ModalPopupExtender ID="Panel1_ModalPopupExtender" runat="server" 
            DynamicServicePath="" Enabled="True" TargetControlID="LinkButton1" PopupControlID="Panel1">
        </ajaxToolkit:ModalPopupExtender>

    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server"  UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server">
        Test
        </asp:Panel>
    </ContentTemplate>
</asp:UpdatePanel>
...