asp.net 用の AjaxToolkit の ModalPopupExtender を使用しています。ModalPopupExtender を別のボタンでトリガーしようとしています。問題は、TargetControlID を使用していない限り、ポップアップが開いて 1 秒以内にすぐに閉じてしまうことです。毎回同じパネルを使用して、いくつかの異なるボタンからこのポップアップにアクセスできるようにする必要があります。
以下のコードは問題をうまく再現するはずです。私の実際のアプリケーションでは、ほとんど問題なく動作します。OnClientClick から .show() を呼び出すと約 1/2 秒後に閉じることを除いて、ポップアップの選択したパネルでコンテンツが更新されます。
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
//Function to Hide ModalPopUp
function Hidepopup() {
$find('AjaxPopupHi').hide();
}
//Function to Show ModalPopUp
function Showpopup() {
$find('AjaxPopupHi').show();
}
</script>
</head>
<form id="form1" runat="server">
<asp:LinkButton ID="lnk" OnClientClick = "Showpopup()" runat="server" Text="hi"></asp:LinkButton>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<asp:Button ID="Button_dummy" Style="display: none" runat="server" Text="Button" />
<ajaxToolKit:ModalPopupExtender ID="mpe" runat="server" BehaviorID="AjaxPopupHi" TargetControlID="Button_dummy" PopupControlID="pnl"
CancelControlID="close" />
<!--BELOW panel does not remain OPEN :/-->
<asp:Panel ID="pnl" runat="server" CssClass="popupPanel">
<div>
Hi!!!
</div>
<asp:Button ID="close" runat="server" Text="Close" />
</asp:Panel>
</form>
ありがとう