框架page与JQgrid冲突

本文探讨了ASP.NET后台继承框架Page在输出JS代码、登录div及样式链接时遇到的问题,即jqGrid无法正确获取documentMode。通过将部分输出内容存储在Session中并在前端读取的方式解决了此兼容性问题。
问题是这个样子的,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/archive/2012/11/05/3845337.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值