框架page与JQgrid冲突

问题是这个样子的,ASP.NET后台继承框架page,page主要输出了一串JS代码,一个login的div,还有通过登录用户判断样式地址的link标签(登录后数据库取出存session里)。jqgrid for asp.net 要基于documentMode,IE的渲染号,是通过页面第一行的声明
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

得到的,后台page会在Render方法里通过Response.Write输出需要内容,这个事件时jqgrid页面还没有加载,第一句话自然就不是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

所以jqgrid就获取不到了,就报错了。

因为页面没加载所以page输出位置变不了,也就是只能在第一行,不输出就不知道css的目录,所以目前的解决办法是把输出的东西存session里再由前台获取session输出到页面,JQ获取session 的方法

 $(document).ready(function () {
             var Loginsession = '<%=((Smt.Message.LoginUser)Session["LogUserInfo"]).pSkinPath%>';
             var _cssFolder = "css/";
             var _cssSuffix = ".css";
             var _cssFile = Loginsession.toString().replace("//", "/");
             var cssFile = _cssFolder + _cssFile + _cssSuffix;
             document.all.userlink.href = "../" + cssFile;
             // alert(document.all.userlink.href);
         })
这里只输出了link地址,其他DIV和js脚本也可这么输出,也可写个js包直接引用,反正就是不让继承的page在页面加载之前输出东西。还没有想到其他办法委屈

原文地址:https://www.cnblogs.com/shiworkyue/p/3845337.html