后台引用JS脚本和.NET 3.5的AJAX有冲突的解决办法
当在ajax.net的UpdatePanel1中存在按钮事件,需要弹出模态对话框等js脚本的时候,往往会遇到失效问题。
原因:
JS代码是要页面运行的时候windwo.onload的时候执行,但是用了AJAX以后这个window.onload就不执行了,局部的刷新,不是整个页面刷新了。
ClientScriptManager 跟 ScriptManager 是有区别的。这个时候就要使用后者了。
贴代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public static void ShowMsg(System.Web.UI.Control control, System.Web.UI.Page page, string msg)
2 {
3 string scr = "var dg=new J.dialog({id:'msg',width:300, height:200, cancelBtnTxt:'Confirm',lockScroll:true,cover:true, drag:false, resize:false,maxBtn:false,xButton:false,title:'Message',iconTitle:false, html:'<h3 style=\"font-size:14px;text-align:center;padding:40px 0 0 0;\">" + msg + "</h3>'});dg.ShowDialog();";
4 System.Web.UI.ScriptManager.RegisterStartupScript(control, page.GetType(), "", scr, true);
5 }
此处用到ScriptManager.RegisterStartupScript 方法,它位于System.Web.Extensions.dll 中。
它的作用本来就是为 UpdatePanel 中的某个控件注册一个启动脚本块,并将该脚本块添加到页面中。
记下来。