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顯示正常

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章