1. 程式人生 > >JqueryEasyUI的DataGrid接收html內容後不顯示問題的原因,解決方法

JqueryEasyUI的DataGrid接收html內容後不顯示問題的原因,解決方法

前臺用的的DataGrid來顯示資料,後臺用ashx來處理返回資料(JSON格式),返回一般的資料還沒什麼問題,但是在返回複雜資料例如HTMl程式碼的時候,就很容易出問題了,現在我隨便從網上覆制了一部分html程式碼存到資料庫,然後在返回給前臺的時候,直接瀏覽ashx頁面資料沒有任何問題,但是DataGrid就是不顯示資料,在百度了很久後還是沒有搞明白,最後在搞人的指點下終於明白了這是為什麼,就是換行符影響的,參見http://www.cnblogs.com/springfield/archive/2010/05/24/1724383.html,明確說了在構造json資料的時候不能有換行符,然後我就一直想把換行符給替換了,其實不是不能有換行符,只要轉義一樣就可以了,例如

var a="'asdas':5345345
3423424";  //這種會出錯

var b="'asdsad':345345\
123131";  //轉義掉換行符,就不會出錯

知道了原理後就好辦多了,在後臺網前臺輸出json之前,先對資料做下處理工作:

        public static string cleanString(string newStr)
        {
            string tempStr = newStr.Replace("\r\n", "\\\r\n");//轉義換行符
            newStr = newStr.Replace("\"", "'");  //替換雙引號為單引號
            return tempStr;
        }


處理之後的json資料在每次換行的地方都加了一個轉義符\,這樣當轉行為js物件的時候就不會出錯了

DataGrid顯示正常