如何在单击弹出窗口内的关闭链接时从服务器端代码关闭Modal Popup Extender?
private void btnSubmit_Click(object sender, EventArgs e)
{
modelpopupextender.hide();
}
回答这个问题可能对发帖人没有用,但对其他人可能有用。
从服务器端关闭模态弹出窗口需要执行以下操作。
不要将关闭按钮的ID赋给modalpopupextender的“CancelControlID”,而是创建一个虚拟的隐藏字段,并将该ID赋给modalpopupextender的“CancelControlID”。
例如:
<pre>
<asp:HiddenField ID="hidForModel" runat="server" />;
/*Are you sure you want to know the answer? */
<asp:Button ID="btnYes" runat="server" Text="Yes!" onclick="btnYes_Click" />;
<br />;
<asp:Panel ID="pnlModal" runat="server" CssClass="modalPopup" Style="display: none;">
<asp:Panel ID="pnlControls" runat="server" CssClass="insideModalPopup></asp:Panel>
<br />
<asp:Button ID="btnClose" runat="server" Text="Close" onclick="btnClose_Click" />
</asp:Panel>
<cc1:ModalPopupExtender TargetControlID="hidForModel" ID="pnlModal_ModalPopupExtender"
runat="server" DynamicServicePath="" Enabled="True" BackgroundCssClass="modalBackground"
PopupControlID="pnlModal" CancelControlID="hidForModel" DropShadow="true">
</cc1:ModalPopupExtender>
</pre>
在这里,我已经将TargetControlID和CancelControlID都设置为hidForModel,因为我想从代码后端显示和隐藏模态弹出窗口。
在代码后端:
<pre>
protected void btnYes_Click(object sender, EventArgs e)
{
pnlModal_ModalPopupExtender.Show();
TextBox txt = new TextBox();
txt.Text = "aaa";
pnlControls.Controls.Add(txt);
}
protected void btnClose_Click(object sender, EventArgs e)
{
pnlModal_ModalPopupExtender.Hide();
}
</pre>
我已经制作了模态弹出框,并在单击“是”按钮时从代码后端添加了一个文本框,并在单击“关闭”按钮时隐藏了模态弹出框。
<asp:ModalPopupExtender ID="mpe_login" runat="server"
TargetControlID="btn_login_popup" PopupControlID="panel_login"
BackgroundCssClass="LoginBackground1"
CancelControlID="btn_Cancel" />