我正在使用addRowData在ajax调用中将数据追加到网格。它正确显示数据,但在分页时显示Page 1 0f 0,这是不正确的。
我在jqgrid表属性中添加了rowNum:10。
$.ajax({
url: 'getData',
dataType: 'json',
success: function (data) {
$('#grid').jqGrid('clearGridData');
for (var i = 0; i <= data.length; i++){
$("#grid").jqGrid('addRowData', i + 1, data[i]);
}
$('#grid').setGridParam({rowNum:$('#grid').getGridParam('rowNum')});
}
});
jqgrid表是-
$("#grid").jqGrid(
{
width : 'auto',
height : 'auto',
colNames : [ 'First Name', 'Last Name'],
colModel : [ {
name : "firstName",
index : "firstName",
key:true,
width : 120,
search : true,
stype : "text"
}, {
name : "lastName",
index : "lastName",
width : 120,
search : true,
stype : "text"
},
multiselect : false,
iconSet: "fontAwesome",
datatype : "local",
loadonce : true,
rowNum : 10,
rowList : [ 10, 20, 30, 100000000 ],
loadtext : '',
loadui : 'disable',
toppager:true,
pager : '#prowed2',
viewrecords : true,
loadComplete : function() {
$("option[value=100000000]").text('All');
},
gridComplete : function() {
}
});
我希望显示数据,并且分页应该显示第1页,共1页
答案 0 :(得分:0)
首先,您永远不要在循环中填充addRowData
来填充网格。具有datatype: "local"
的jqGrid支持data
参数,用于创建网格并将其填充数据。秒,您要在一页上显示所有数据(如果行数很大,这是个坏主意),然后可以使用rowNum
来获得足够大的值,例如1000,这将被解释为最多行,将显示在页面上。
要替换现有网格中的完整数据,可以替换data
并触发reloadGrid
事件。要替换数据,我建议使用getGridParam
而不是setGridParam
。没有参数的方法getGridParam
返回所有内部网格参数的引用。因此,要替换data
参数,您需要更改内部网格参数对象的data
属性:
$.ajax({
url: 'getData',
dataType: 'json',
success: function (data) {
var $grid = $("#grid"),
p = $grid.jqGrid("getGridParam"); // get reference to all parameters
p.data = data; // replace data parameter
$grid.trigger("reloadGrid", { page: 1 }); // display new data in the grid
}
});