这是我的.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设置了休息但它永远不会停在那里。任何帮助将不胜感激。
答案 0 :(得分:0)
这可能是因为你甚至在加载dom之前就执行了这个方法。
尝试将string script = "OpenAddrCandidatesWin();";
更改为string script = "$(function () { OpenAddrCandidatesWin(); })";
,等待加载dom后再执行该方法。