0

2 つの updatepanel があり、これらの updatepanels 内に 2 つの modalpopup があります。modalpopup 内の最初の updatepanel 内の control(button) から updatepanel の 1 つ内のラベルを変更しようとしています。ボタンをクリックすると、最初の modalpopup が閉じ、2 番目の modalpopup がラベルが変更されて表示されますが、ポップアップ内のラベルは表示されません。

コード ビハインドで secondUpdatePanel.Update() を呼び出そうとすると、2 番目のモーダル ポップアップも表示されません。助けていただければ幸いです。最初のポップアップから 2 番目のポップアップに asyncpostbacktriggers を割り当てるためのチュートリアルを見てきましたが、これらのチュートリアルはモーダル ポップアップ内にはありません。

だから、私は何かが欠けているかもしれません。

<asp:UpdatePanel ID="upPnlFormalAppeal" runat="server" UpdateMode="Conditional" >
        <ContentTemplate>
            <asp:HiddenField ID="hfFormalAppeal" runat="server" />
            <asp:ModalPopupExtender ID="mpopupFormalAppeal" runat="server"
                TargetControlID="hfFormalAppeal" 
                PopupControlID="pnlFormalAppealPopup" 
                CancelControlID="btnClose" 
                BackgroundCssClass="modalBackground" >
                <Animations>
                    <OnShown><Fadein Duration="0.50" /></OnShown>
                    <OnHiding><Fadeout Duration="0.75" /></OnHiding>
                </Animations>
            </asp:ModalPopupExtender>
            <!-- Details View for Formal Appeal -->
            <asp:DetailsView ID="dvFormalAppeal" runat="server" Height="50px" AutoGenerateRows="False" CssClass="dvCSS" >
                <!-- DATA HERE -->
            </asp:DetailsView>
            <div class="footer">
                <asp:LinkButton ID="btnSubmit" runat="server" Text="Submit" 
                    CausesValidation="false" OnClick="btnSubmit_Click" />
                    &nbsp;
                <asp:LinkButton ID="btnClose" runat="server" Text="Close" CausesValidation="false" />
                <asp:ConfirmButtonExtender ID="cbeSubmit" runat="server" 
                    ConfirmText="Submit Appointment Request?" TargetControlID="btnSubmit">
                </asp:ConfirmButtonExtender>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>

modalpopup 内の 2 番目の UpdatePanel。

<asp:Panel ID="Panel1" runat="server" CssClass="panelConfirmation" >
    <asp:UpdatePanel ID="upPnlMessageBox" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
        <ContentTemplate>
            <asp:HiddenField ID="hfSubmissionConfirmationBox" runat="server" />
            <asp:ModalPopupExtender ID="mpopupConfirmation" runat="server"
                TargetControlID="hfSubmissionConfirmationBox" 
                PopupControlID="Panel1" 
                CancelControlID="btnClose" 
                BackgroundCssClass="modalBackground" >
            </asp:ModalPopupExtender>
                    <div class="mpopupBody">
                        <asp:Label ID="lblConfirmationMessage" runat="server"></asp:Label>
                    </div>
                    <div class="footer">
                        <asp:Button ID="btnConfirmClose" runat="server" Text="Close" 
                            CausesValidation="false" onclick="btnConfirmClose_Click" />
                    </div>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
            <asp:AsyncPostBackTrigger ControlID="btnConfirmClose" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>
</asp:Panel>

コードビハインド。

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        this.mpopupFormalAppeal.Hide();

        this.lblConfirmationMessage.Text = "Text changed!";
        //this.upPnlMessageBox.Update();
        this.mpopupConfirmation.Show();
    }

どんな助けでも大歓迎です!

4

1 に答える 1

0

同じシナリオの人のために... レイアウトデザインを再注文することで解決できました。

以下のように、Modalpopup を UpdatePanel の外に配置しました。

<asp:HiddenField ID="hfSubmissionConfirmationBox" runat="server" />
<asp:ModalPopupExtender ID="mpopupConfirmation" runat="server"
    TargetControlID="hfSubmissionConfirmationBox" 
    PopupControlID="Panel1" 
    CancelControlID="btnClose" 
    BackgroundCssClass="modalBackground" >
</asp:ModalPopupExtender>
<asp:Panel ID="Panel1" runat="server" CssClass="panelConfirmation" >
    <asp:UpdatePanel ID="upPnlMessageBox" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
        <ContentTemplate>
            <div class="mpopupBody">
                <asp:Label ID="lblConfirmationMessage" runat="server"></asp:Label>
            </div>
            <div class="footer">
                <asp:Button ID="btnConfirmClose" runat="server" Text="Close" 
                    CausesValidation="false" onclick="btnConfirmClose_Click" />
            </div>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
            <asp:AsyncPostBackTrigger ControlID="btnConfirmClose" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>
</asp:Panel>
于 2012-11-24T20:59:56.563 に答える