模态弹出扩展器在.Show()之后自动关闭

Dan*_*ipe 3 c# asp.net ajax ajaxcontroltoolkit

我正在使用AjaxToolkit中的ModalPopupExtender for asp.net.我试图用不同的按钮触发ModalPopupExtender.问题是,除非我使用TargetControlID,否则弹出窗口会在一秒钟内快速关闭.我需要这个弹出窗口可以通过几个不同的按钮访问,每次都使用相同的面板.

下面的代码应该很好地复制问题,在我的实际应用程序上几乎可以正常工作.甚至内容都是使用弹出窗口的选定面板进行更新,除非它在大约1/2秒后关闭,当我从OnClientClick调用.show()时;

<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>
Run Code Online (Sandbox Code Playgroud)

谢谢

शेख*_*ेखर 7

你可以像这样使用

OnClientClick = "return Showpopup()"


function Showpopup() {
    $find('AjaxPopupHi').show();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

您必须在OnClientClick组合代码时使用return

<asp:LinkButton ID="lnk" OnClientClick = "return Showpopup()" runat="server" Text="hi">  
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

你的javascript函数应该是这样的

function Showpopup() {
    $find('AjaxPopupHi').show();
    return false;
}
Run Code Online (Sandbox Code Playgroud)