【发布时间】:2012-09-24 03:05:55
【问题描述】:
我正在尝试从我的 ASP.NET c# 代码隐藏中打开一个 jQuery UI 对话框。我已经创建了下面的代码,但我无法让它工作,并且不确定如何调试问题。我该如何解决这个问题?
我的 JavaScript:
<script>
$(function () {
$("#dialog_info").dialog("destroy");
$("#dialog_info").dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
});
function show() {
$("#dialog_info").dialog("open");
return false;
}
</script>
我的 HTML:
<body>
<form id="form1" runat="server">
<div>
<div id="dialog_info" title="information">
<asp:Literal ID="ltMessage" runat="server" Text="success"></asp:Literal>
</div>
<a href="#" id="message">open</a>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
我的代码背后:
protected void Button1_Click(object sender, EventArgs e)
{
ltMessage.Text = DateTime.Now.ToString();
StringBuilder sb = new StringBuilder();
//sb.Append("<script> ");
sb.Append("show();");
//sb.Append("</script>");
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "key", sb.ToString(), true);
}
修改代码
function showMessage() {
$(function () {
$("#dialog_info").dialog("open");
});
return false;
}
现在效果很好!
【问题讨论】:
-
我想知道您的包含“show()”的脚本块是否在页面完成加载之前被执行。单击按钮后查看 HTML 并逐步执行脚本。
-
您有任何错误吗?点击按钮后,你能看到你的
show();代码在页面上呈现吗? -
是的,我的包含“show()”的代码块有问题!就像 Lazarus 说的,show() 在页面完成加载之前被执行。我将它修改为如下 function show() { $(function () { $("#dialog_info").dialog("open"); }) ;返回假; }
-
现在可以正常使用了!感谢 Murali、Lazarus、Tim B James 和 huMpty duMpty
标签: c# asp.net jquery-ui-dialog