ajax中ClientScriptmanager
我的ajax中ClientScriptmanager中的RegisterStartupScript为什么不能弹出对话框
------解决方案--------------------贴出代码,才能分析
------解决方案--------------------如果你用RegisterStartupScript的话,js就被注册到页面开始
这时候你得保证你的dialog已经rander了,否则肯定是 XXX is undefined
建议这样时候用Page.ClientScript.RegisterClientScriptBlock,将脚本注册到页面最后,页面上元素rander完就调用你的
dialog
------解决方案--------------------ClientScriptmanager中的RegisterStartupScript
如果页面有异步postback,这样注册的js不能起效,
你的页面使用了updatepanel,使用ScriptManager的
------解决方案--------------------应该是
ScriptManager.RegisterStartupScript(UpdatePanel1,UpdatePanel1.GetType(),"H", "return window.confirm( 'do you want leave?')",true)
------解决方案--------------------ScriptManager not cs
------解决方案--------------------UpdatePanel 不能使用this.ClientScript;
------解决方案--------------------你用了这个this.GetType() 肯定不行。你换个updatepanel中的button试试
------解决方案--------------------ScriptManager.RegisterStartupScript(this, this.GetType(), "a", "<script>alert('');</script>", false);
以前遇到过,不记得了。
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('提示信息')", true);就可以正常的弹出 alert 对话框了。
注:如果在页面中有多个 UpdatePanel,如果每个 UpdatePanel 的 UpdateMode 都是“always”[默认值]的话,那么你使用那个 UpdatePanel 的实例作为参数都可以;如果每个 UpdaePanel 的 UpdateMode=conditional,那么你必须使用正在更新的那个 UpdatePanel 作为参数,这样脚本才能起作用。
百度搜:
asp.net ajax 弹不出对话框
应解决问题
------解决方案--------------------不好意思,说反了,应该是
如果你用RegisterStartupScript的话,js就被注册到页面最后
罪过,罪过