在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据相关的知识,希望对你有一定的参考价值。
http://www.xuebuyuan.com/2103538.html
每项值需处理换行符
item = item.Replace("\\r\\n", ""); //或\\\\r\\\\n替换换行符
http://www.cnblogs.com/lhws/archive/2013/08/16/3262301.html
在easyui中的datagrid中使用行内编辑时textarea的换行保存到mysql数据库为\\n
在textarea中输入回车符 在js读取textarea中的值有\\r\\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的\\r\\n替换一下。
在js取textarea的时候:
如果用
var str = document.getElementById("textarea").value;
str = str.replace("\\r\\n","<br>");
则只会将第一个\\r\\n替换成<br>,如何将所有n个\\r\\n替换成<br>呢?难道要无限个replace吗?
其实不用,replace可以和正则表达式结合,一次替换所有的\\r\\n。
var reg=new RegExp("\\r\\n","g");
str= str.replace(reg,"\\r\\n");
这样str中所有的\\r\\n就替换成<br>了.然后可以将其存入数据库。
在取出的时候 只用将值在替换回来即可
var reg=new RegExp("<br>","g");
stt= str.replace(reg,"\\r\\n");
document.getElementById("textarea").value=str;
更加详细的分析和应用可以参考javascript的replace方法与正则表达式结合应用讲解
下面是我写的2个函数 直接放到通用包中 以后使用可以替换
function replaceTextarea1(str){
var reg=new RegExp("\\r\\n","g");
var reg1=new RegExp(" ","g");
str = str.replace(reg,"<br>");
str = str.replace(reg1,"<p>");
return str;
}
function replaceTextarea2(str){
var reg=new RegExp("<br>","g");
var reg1=new RegExp("<p>","g");
str = str.replace(reg,"\\r\\n");
str = str.replace(reg1," ");
return str;
}
2. html中通<textarea>标签提交的内容会将回车转变成"\\r\\n",再将提交的内容放入<textarea>标签中显示时,回车符会还原成正常的换行。
但当带有"\\r\\n"的字符串放在html的普通文本域中显示时 ,原来的换行效果会转变成空格,因此,需要在显示前将字符串中的"\\r\\n"替换为"</br>"。
另外,还有一点需要注意:EL表达式会将"</br>"换行符转变成"</br>","<"和">"分别对应"<"和">",也就是说,到了页面上,还是显示为"</br>"(呵呵,EL的智能化程度太高了),为了补救这一点,需要使用jsp标签(<%= %>)来进行显示。
所以当需要在普通文本域中显示由<textarea>提交的内容时,可以直接在数据库里存储不经过处理的字符串,而只在显示前将"\\r\\n"替换为"</br>",然后在页面上使用<%= %>来显示这些内容.
3. 如果将通过textbox提交到数据库中的空格和回车正确显示出来
public string MyReplace(string mystr)
{
if(mystr == null || mystr == "" )
{
return(" ");
}
else
{
mystr = mystr.Replace("\\n\\r","<br>");
mystr = mystr.Replace("\\r","<br>");
mystr = mystr.Replace("\\t"," ");
return(mystr);
}
}
以上是关于在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据的主要内容,如果未能解决你的问题,请参考以下文章
easyUI 使用datagrid 返回的json 数据正确 为啥页面显示不出来
jQuery easyui 中datagrid怎么用json 数据代替url获取参数?
jquery easyui 的 datagrid如何动态加载数据?