在ASP.NET中的另一个UpdatePanel中使用TargetControl调用模式弹出窗口

时间:2009-04-16 13:53:06

标签: asp.net asp.net-ajax ajaxcontroltoolkit modalpopupextender

我正在尝试调用Modal Popup,但TargetControl与ModalPopupExtender所在的UpdatePanel不同。

以下是代码:

<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中”。显示。

我正在尝试在UpdatePanel2中放置一个Triggers语句,但没有任何变化:

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

有可能吗?感谢

1 个答案:

答案 0 :(得分:6)

将扩展程序移动到第一个更新面板:

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