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数据的时候不能有换行符,然后我就一直想把换行符给替换了,其实不是不能有换行符,只要转义一样就可以了,例如
知道了原理后就好办多了,在后台网前台输出json之前,先对数据做下处理工作:
处理之后的json数据在每次换行的地方都加了一个转义符\,这样当转行为js对象的时候就不会出错了
![](http://hi.csdn.net/attachment/201110/9/0_1318130438PuzY.gif)
DataGrid显示正常
![](http://hi.csdn.net/attachment/201110/9/0_1318130441qtVq.gif)
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对象的时候就不会出错了
![](http://hi.csdn.net/attachment/201110/9/0_1318130438PuzY.gif)
DataGrid显示正常
![](http://hi.csdn.net/attachment/201110/9/0_1318130441qtVq.gif)
![](http://hi.csdn.net/attachment/201110/9/0_1318130444Z633.gif)
相关文章推荐
- html固定宽度下拉框内容显示不全问题解决方法
- html固定宽度下拉框内容显示不全问题解决方法
- html固定宽度下拉框内容显示不全问题解决方法
- Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
- jQuery html()方法显示不了内容的问题
- jQuery在异步请求数据返回后,调用$("selector").html(data.content);之后因为一些特殊字符或者',"不能显示内容的问题解决办法
- openerp 7.0接收陌生邮件名称显示乱码问题解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- 【解决方法】EasyUI DataGrid不显示滚动条时,没有数据的问题
- 通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题
- 固定宽度下拉列表中option内容显示不全问题解决方法
- html编写代码时,显示效果中文内容出现乱码解决方法
- Struts2整合JasperReport的HTML图形报表不显示图片问题的解决方法
- GridView中数据源中包含html标签显示问题的解决方法
- 固定宽度下拉列表中option内容显示不全问题解决方法
- ie11兼容性问题,jsp在IE11显示不全问题,ie11覆盖内容问题解决方法
- MyEclipse+Tomcat开发Web项目时修改内容不能及时显示问题解决方法
- WebView-显示HTML内容-解决乱码问题
- 【解决方法】EasyUI DataGrid无数据时不显示滚动条问题
- Struts2整合JasperReport的HTML图形报表不显示图片问题的解决方法