从后面的C#代码调用时,Jquery Dialog不会触发

时间:2015-06-10 20:08:36

标签: c# jquery asp.net

这是我的.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设置了休息但它永远不会停在那里。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这可能是因为你甚至在加载dom之前就执行了这个方法。

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