【发布时间】: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>
<asp:LinkButton ID="LinkButton3" OnClick="lnkCloseReleaseHL" runat="server"
Text="Close"></asp:LinkButton>
</ItemTemplate>
<asp:TemplateColumn HeaderText="Decline">
<ItemTemplate>
<asp:LinkButton ID="lnkDeclineHLRelease" runat="server" OnClick="lnkDeclineHLRelease_Click">Decline All</asp:LinkButton>
</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