我的网站上有一个JQGrid插件,表格正在加载,但没有要编辑的行,选择或其他。它正在请求服务器,因为当我查看日志时,我看到了请求及其参数(sidx,_search,rows,sord,nd等)。
这是jqgrid代码:
$(document).ready(function() {
var lastsel;
jQuery("#rowed3").jqGrid(
{
url : CONTEXT_PATH+'/ajax/getPartesByCategory.do?catid=<s:property value="categoryId" />',
datatype: 'json',
colNames : [ 'piezaId', 'descripcion', 'disponible'],
colModel : [ {
name : 'piezaId',
index : 'piezaId',
align : "right",
width : 40
}, {
name : 'descripcion',
index : 'descripcion',
width : 360,
editable : true
}, {
name : 'disponible',
index : 'disponible',
width : 80,
editable : true
} ],
rowNum : 20,
rowList : [ 20, 40, 60, 80 ],
pager : '#prowed3',
sortname : 'id',
viewrecords : true,
sortorder : "desc",
onSelectRow : function(id) {
if (id && id !== lastsel) {
jQuery('#rowed3').jqGrid('restoreRow', lastsel);
jQuery('#rowed3').jqGrid('editRow', id, true);
lastsel = id;
}
},
editurl : "server.php",
caption : "Piezas"
});
jQuery("#rowed3").jqGrid('navGrid', "#prowed3", {
edit : false,
add : false,
del : false
});
})
这是服务器返回的JSON:
[{"piezaId":486,"disponible":1,"descripcion":"Asiento delantero LH","category":{"categoryId":2,"category":"Interior","status":1,"subCategories":[]}},{"piezaId":485,"disponible":1,"descripcion":"Asiento delantero RH","category":{"categoryId":2,"category":"Interior","status":1,"subCategories":[]}}]
在服务器端我使用JAVA6,Struts2和GSon来编写json,但是对于这些ajax调用我只写了一个文本/普通内容的响应
任何帮助?
答案 0 :(得分:2)
您应该更改从服务器发送的数据格式,或使用某种jsonReader
或jsonmap
技术(例如参见jquery with ASP.NET MVC - calling ajax enabled web service或http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data和Mapping JSON data in JQGrid )。最简单的方法是生成可以使用标准jsonReader
阅读的数据(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data):
{
"total": "1",
"page": "1",
"records": "2",
"rows" : [
{"id" :"1", "cell":["486","1","Asiento delantero LH"]},
{"id" :"2", "cell":["485","1","Asiento delantero RH"]},
]
}