ASP.NET和jQuery - 从codebehind调用

时间:2010-09-17 09:49:54

标签: asp.net jquery

这是我之前尝试解决的问题,但放弃了。 基本上我正在使用ModalPopupExtenders(来自AJAX.NET)来显示具有一些内容(文本,控件等)的面板。我从代码隐藏中调用它。它运作良好。

但是现在我想用一些jQuery对话框替换ModalPopup。问题是从代码隐藏中调用它。 据我所知,我必须在RegisterStartup事件上注册jQuery库,但我已经尝试过并从代码隐藏中调用jQuery但没有成功。

有人能帮助我吗?我真的想替换ModalPopup,它们给我带来了很多麻烦。

提前致谢。


protected void Page_Load(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "registerDialog",
        "$(function() { $('#dialog').dialog({autoOpen:false, show:'blind'}); });", true);
}

protected void Button1_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "openDialog",
        "$('#dialog').dialog('open');", true);
}

这是正确的方法吗?我先注册它以保持隐藏状态。 Thanksю

2 个答案:

答案 0 :(得分:4)

如果您使用的是ScriptManager,请使用RegisterStartupScript(),如下所示:

ScriptManager.RegisterStartupScript(this, GetType(), "modalscript",
    "$(function() { $('#dialog').dialog(); });", true);

如果你使用ScriptManager / UpdatePanels,请使用the equivalent ClientScriptManager version

重要的是要记住将代码包装在document.ready处理程序中(IE在没有它的情况下遇到的问题最多),因此您的元素(在我的示例中为id="dialog")位于DOM中并准备就绪。

答案 1 :(得分:1)

你实际上并没有从代码中调用jQuery,你只需编写一些在页面加载时运行的额外javascript代码(在PostBack之后)。

在这个启动代码中,您可以进行jQuery调用。