3

我正在尝试从我的 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;
    }

现在效果很好!

4

1 回答 1

1

尝试使用ScriptManager.RegisterStartupScript方法

请参阅RegisterStartupScript 和 RegisterClientScriptBlock 之间的区别?

于 2012-10-03T08:06:11.140 回答