框架page与JQgrid冲突
问题是这个样子的,ASP.NET后台继承框架page,page主要输出了一串JS代码,一个login的div,还有通过登录用户判断样式地址的link标签(登录后数据库取出存session里)。jqgrid for asp.net 要基于documentMode,IE的渲染号,是通过页面第一行的声明
得到的,后台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">
得到的,后台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在页面加载之前输出东西。还没有想到其他办法