当从c#代码后面调用时,Jquery对话框不会触发

本文关键字:对话框 Jquery 代码 调用 当从 | 更新日期: 2023-09-27 17:54:57

这是我的。aspx:

 <div id="divAddrCandidates" class="selector"   style="display:none">
    <div style="margin-left:10px ; margin-top:10px">
        <asp:ListBox ID="lstCandidates" runat="server" ></asp:ListBox>
    </div>
     <br />         
    <div style="margin-left:10px">
        <asp:Button ID="btnSelect" runat="server" Text="Select Address" />
       <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" onclientclick="CloseAddrCandidatesWin(); return false;" />
    </div>
</div>  

这是jQuery:

    function OpenAddrCandidatesWin() {
        $("#divAddrCandidates").dialog({
            resizable: true,
            width: 650,
            heigh: 450,
            modal: true,
            draggable: true,
            resizable: true                
        });
        $(".selector").dialog({ dialogClass: 'no-close' });
        jQuery("#divAddrCandidates").parent().appendTo(jQuery("form:first"));
    }

    function CloseAddrCandidatesWin() {
        $("#<%=lstCandidates.ClientID %>").val("");
        $("#<%=lstCandidates.ClientID %>").hide();
        $("#divAddrCandidates").dialog("close");
    }

下面是我的代码:

protected void Save_Click(object sender, System.EventArgs e)
 {
         JsonAddresses = WSJson.GetAddressCandidate(physicalAddrToProcess);
                int count = JsonAddresses.candidates.Length;
                for (int i = 0; i < count; i++)
                {
                    lstCandidates.Items.Add(JsonAddresses.candidates[i].address.ToString());
                    }

        string key = "_OpenAddrCandidatesWin";
        string script = "OpenAddrCandidatesWin();";
        if (!Page.ClientScript.IsStartupScriptRegistered(key))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), key, script, true);
        }
}

我在这里错过了什么?代码通过没有错误,但对话框不弹出,虽然我设置了一个休息在jquery,但它永远不会停止在那里。

当从c#代码后面调用时,Jquery对话框不会触发

这可能是因为您在加载dom之前执行该方法。

尝试将string script = "OpenAddrCandidatesWin();";更改为string script = "$(function () { OpenAddrCandidatesWin(); })";,这将等待dom加载后再执行方法。