【问题标题】:How do I open a jQuery UI Dialog from my c# code behind?如何从后面的 c# 代码打开 jQuery UI 对话框?
【发布时间】: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


【解决方案1】:

【讨论】:

  • 谢谢!我尝试了 ScriptManager.RegisterStartupScript,但它显示模式并快速关闭,只需一次!有什么方法可以试试?
  • 对话框打开后可能有其他功能正在执行。您可以检查 show() 方法在代码中的呈现位置吗?它应该在页面的末尾。查看源代码或尝试使用 DOM 助手,例如 Firebug for firefox 等
  • 我的包含“show()”的代码块在页面完成加载之前已执行!谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-04
  • 2021-08-09
  • 1970-01-01
  • 2011-07-24
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多