我是第一次尝试从服务器加载动态列数据和列名,还使用服务器端分页。
问题是当我在jqgrid AJAX调用(第二个)中使用数据类型:'local'时,显示数据并禁用服务器端分页。但是当我在AJAX调用中使用数据类型:'json'时,不会显示任何数据。
请帮助我获得一个简单明了的解决方案,以实现动态列绑定,客户端排序和服务器端分页。
$(document).ready(function() {
$.ajax({
type : "POST",
url : contextPath + "/getEntities",
dataType : "json",
success : function(result) {
var colD = result.response,
colM = result.colModList,
colN = result.colNames;
$("#list").jqGrid({
url : contextPath + "/getEntities",
datatype : 'json',
mtype : 'POST',
data : colD,
colNames : colN,
colModel : colM,
pager : '#pager',
rowNum : 10,
rowList : [ 10, 20, 30 ],
sortname : 'column1',
sortorder : 'asc',
viewrecords : true,
gridview : true,
caption : 'My first grid',
});
},
loadComplete : function() {
$("#list").jqGrid('setGridParam',{datatype:'json'});
},
error : function(x, e) {
alert(x.readyState + " " + x.status
+ " " + e.msg);
}
});
});
从服务器收到的JSON数据没有问题,因为我能够在数据类型:'local'设置时看到数据(在第二次AJAX调用中)。如果有人提供一个有效的例子,这将是一个很大的帮助。
另一个问题是我的想法,为什么要重新加载网格以及如何做到这一点。放置重新加载代码的位置。我没有得到这一部分。
非常感谢任何帮助。
更新:已发布答案。 适用于使用服务器端分页实现动态列。
答案 0 :(得分:0)
工作代码:
execute("UPDATE ...");
if (connection.Changes == 0) {
execute("INSERT ...");
}