【问题标题】:ASP.NET: UpdatePanel not displaying even when Visible set to TrueASP.NET:即使 Visible 设置为 True,UpdatePanel 也不显示
【发布时间】:2018-09-24 09:48:45
【问题描述】:

我在一个 aspx 页面中有两个更新面板,每个更新面板中有一个 ModalPopupExtender。我面临的问题是,我在 aspx 页面中将 Visible 属性设置为 false,并在需要显示时将其设置为 True。但是即使我设置了 Visible=True 属性,UpdatePanel 也没有出现。

aspx代码:

<%--Request closed --%>
<asp:UpdatePanel ID="udpModalReqClose" runat="server" Visible="false">
    <ContentTemplate>
        <div style="display:none">
            <asp:Button ID="btnDummyButton_ReqClose" UseSubmitBehavior="true" runat="server" Text="DummyButton" Style="display: none;" />
        </div>
        <asp:Panel ID="pnlCloseReq" runat="server" BackColor="White" BorderStyle="Solid" BorderColor="Black" BorderWidth="1px">
            <div>
                <table id="Table24" runat="server" border="0" cellpadding="4" cellspacing="10" width="400px">
                    <tr>
                        <td align="center">
                            <asp:Label ID="lblcloseSuccessOPR" runat="server" Font-Bold="true" ForeColor="Red" /> 
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 5px;"></td>
                    </tr>
                    <tr>
                        <td align="center">
                            <asp:Button ID="btn_okclose" runat="server" SkinID="btnSearch" CssClass="btnSearch" OnClick="btnPOCPIRedirect_Click"
                                        CausesValidation="false" align="center" Text="OK" Width="65px" />
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 5px;"></td>
                    </tr>
                </table> 
            </div>
        </asp:Panel>
        <cc1:ModalPopupExtender ID="mpeClosedSuccess" runat="server" PopupControlID="pnlCloseReq" TargetControlID="btnDummyButton_ReqClose" 
            BackgroundCssClass="modalPopup1" DropShadow="true" BehaviorID="mpe">
        </cc1:ModalPopupExtender>
    </ContentTemplate>
</asp:UpdatePanel>

<%--Request declined --%>
<asp:UpdatePanel ID="udpModalReqDecline" runat="server" Visible="false">
    <ContentTemplate>
        <div style="display:none">
            <asp:Button ID="btnDummyButton_ReqDecline" UseSubmitBehavior="true" runat="server" Text="DummyButton" Style="display: none;" />
        </div>
        <asp:Panel ID="pnlRequestDecline" runat="server" BackColor="White" BorderStyle="Solid" BorderColor="Black" BorderWidth="1px">
            <div>
                <table id="Table17" runat="server" border="0" cellpadding="4" cellspacing="10" width="400px">
                    <tr>
                        <td align="center">
                            <asp:Label ID="lblRequestDecline" runat="server" Font-Bold="true" ForeColor="Red" /> 
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 5px;"></td>
                    </tr>
                    <tr>
                        <td align="center">
                            <asp:Button ID="Button4" runat="server" SkinID="btnSearch" CssClass="btnSearch" OnClick="btnPOCPIRedirect_Click"
                                        CausesValidation="false" align="center" Text="OK" Width="65px" />
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 5px;"></td>
                    </tr>
                </table> 
            </div>
        </asp:Panel>
        <cc1:ModalPopupExtender ID="mpeRequestDecline" runat="server" PopupControlID="pnlRequestDecline" TargetControlID="btnDummyButton_ReqDecline" 
            BackgroundCssClass="modalPopup1" DropShadow="true" BehaviorID="mpe">
        </cc1:ModalPopupExtender>
    </ContentTemplate>
</asp:UpdatePanel>

在 aspx 中触发 modalpopup 的链接按钮:

<ItemTemplate>
      &nbsp;<asp:LinkButton ID="LinkButton3" OnClick="lnkCloseReleaseHL" runat="server"
                                                Text="Close"></asp:LinkButton>&nbsp;
</ItemTemplate>

<asp:TemplateColumn HeaderText="Decline">
       <ItemTemplate>
           &nbsp;<asp:LinkButton ID="lnkDeclineHLRelease" runat="server" OnClick="lnkDeclineHLRelease_Click">Decline All</asp:LinkButton>&nbsp;
       </ItemTemplate>

后面的代码:

public void lnkCloseReleaseHL(object sender, System.EventArgs e)
{
      udpModalReqClose.Visible = true;
      string successMsg = "Request has been closed Succesfully.";
      lblcloseSuccessOPR.Text = successMsg;
      mpeClosedSuccess.Show();
}

protected void lnkDeclineHLRelease_Click(object sender, EventArgs e)
{
    udpModalReqDecline.Visible = true;
    string successMsg = "Request has been declined.";
    lblRequestDecline.Text = successMsg;
    mpeRequestDecline.Show();
}

如果我没有在 aspx 页面中设置 Visible=False 属性,则网页上会显示 ModalPopup 之一,空白处带有我在弹出窗口中插入的“确定”按钮。

另外,如果我的 aspx 页面中只有一个 UpdatePanel,则弹出窗口可以正常工作而无需设置 Visible 属性。一旦我在其下方添加另一个 UpdatePanel,就会出现此问题(链接中的屏幕截图),其中带有“确定”按钮的面板在页面加载时显示。 Panel appearing on page with the 'OK' button

我尝试在网络上搜索所有可能的解决方案,但没有任何帮助。如果有人可以指导我如何解决这个问题,那将有很大帮助。我只是想知道如何使多个 UpdatePanel 工作而不会出现此问题。

【问题讨论】:

  • 嗨 Anirudh,其中“lnkDeclineHLRelease”和“lnkCloseReleaseHL”在 aspx 页面中定义
  • 同时添加相关代码你在 Page_Load 中所做的事情,因为你提到它正在发生页面加载。
  • @MaheshB "lnkDeclineHLRelease" 和 "lnkCloseReleaseHL" 是触发更新面板的链接按钮。在 Page_Load 上,我没有添加与这些更新面板相关的任何内容。问题是,如果我在加载页面后没有为更新面板添加 Visible=false,则会显示该面板(屏幕截图链接)。如果我在显示模态弹出窗口之前添加 Visible=false 并将其设置为 true,则弹出窗口不会出现。
  • 只是想知道你在 aspx 中哪里有那些链接按钮,如果你显示代码那么将非常适合解决问题。
  • @MaheshB 我在上面的帖子中添加了链接按钮代码。链接按钮位于我放置的更新面板下方约 1000 行处。

标签: c# asp.net asp.net-ajax updatepanel modalpopupextender


【解决方案1】:

我不确定,但您可以尝试使用 样式=“显示:无” 代替 可见=“假”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2021-12-03
    • 2021-04-02
    • 1970-01-01
    • 2015-03-04
    • 2020-07-16
    • 2020-07-09
    相关资源
    最近更新 更多