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