当从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,但它永远不会停止在那里。
这可能是因为您在加载dom之前执行该方法。
尝试将string script = "OpenAddrCandidatesWin();";
更改为string script = "$(function () { OpenAddrCandidatesWin(); })";
,这将等待dom加载后再执行方法。