后台引用JS脚本和.NET 3.5的AJAX有冲突的解决办法

当在ajax.net的UpdatePanel1中存在按钮事件,需要弹出模态对话框等js脚本的时候,往往会遇到失效问题。

原因:

JS代码是要页面运行的时候windwo.onload的时候执行,但是用了AJAX以后这个window.onload就不执行了,局部的刷新,不是整个页面刷新了。

ClientScriptManager 跟 ScriptManager 是有区别的。这个时候就要使用后者了。

贴代码:


View Code
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 中的某个控件注册一个启动脚本块,并将该脚本块添加到页面中。

记下来。

posted @ 2011-09-21 00:46  慧实  阅读(1058)  评论(0编辑  收藏  举报