【发布时间】:2012-11-21 12:06:34
【问题描述】:
我在我的项目中使用 jQGrid 最新版本。以下是我配置的完整配置。
jQuery("#list").jqGrid( {
url : 'Link.do?method=findAllBrand',
mtype : 'GET',
height : 350,
datatype : "xml",
colNames : [ 'Name' ],
colModel : [ {
name : 'name',
index : 'name',
width : 620
} ],
rowNum : 10,
rowList : [ 10, 20, 30 ],
sortname : 'id',
sortorder : "desc",
viewrecords : true,
multiselect : true,
imgpath : 'themes/base/images',
caption : "Brand (s) Summary Grid",
pager : $('#pager'),
cache : false,
onSelectRow : function(id) {
}
});
我正在从服务器获取以下 xml 格式的数据:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><rows><page>1</page><total>1</total><records>4</records><row id="BRD00003"><cell>Blanco</cell></row><row id="BRD00001"><cell>Bosch</cell></row><row id="BRD00004"><cell>Chef</cell></row><row id="BRD00002"><cell>F&P</cell></row></rows>
我知道在最后一行的最后一个单元格中会产生问题,因为它包含 & char,在 xml 中具有特殊含义。但是我已经使用 Apache commons lang library 使用下面的函数对整个 xml 进行了转义。
toXml = StringEscapeUtils.escapeXml(toXml);
结果字符串是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><rows><page>1</page><total>1</total><records>4</records><row id="BRD00003"><cell>Blanco</cell></row><row id="BRD00001"><cell>Bosch</cell></row><row id="BRD00004"><cell>Chef</cell></row><row id="BRD00002"><cell>F&P</cell></row></rows>
我仍然在 Mozilla firefox 最新版本和 chrome 中遇到同样的错误,即 7,8 也是。
我必须给你看这个网格中的特殊字符,我该如何解决这个问题?
谢谢你 米希尔·帕雷赫
【问题讨论】:
-
谁控制服务器?您将无法修复无效的 xml。必须固定在服务器端。
-
@alxx 请仔细阅读我的描述。我要求在服务器端修复它。我正在从服务器端生成 xml。谢谢
-
顺便说一下jqGrid没有
cache和imgpath参数。pager参数的值最好用在字符串形式中。它应该指定 id 选择器:pager: '#pager'。您还应该始终使用gridview: true选项来提高网格的性能并删除具有默认值的选项(如mtype : 'GET'、datatype : "xml")。选项sortname : 'id'是错误的。您的意思可能是sortname : 'name'或者您也应该删除该选项。