ASP.NET和jQuery – 从codebehind调用

这是我之前尝试解决的问题,但放弃了。 基本上我正在使用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ю

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

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

如果您没有使用ScriptManager / UpdatePanels,请使用等效的ClientScriptManager版本 。

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

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

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