您的位置:首页 > Web前端 > JQuery

JqueryEasyUI的DataGrid接收html内容后不显示问题的原因,解决方法

2011-10-09 11:20 671 查看
前台用的JqueryEasyUI的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显示正常



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐