天天看點

架構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在頁面加載之前輸出東西。還沒有想到其他辦法

架構page與JQgrid沖突