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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章