我正在显示一个jqgrid,数据工作正常,我正在尝试在无效的情况下实现分页。我通过这里的例子http://trirand.com/blog/jqgrid/jqgrid.html并尝试实现相同的目标。
这是非常基本的,但我不知道jqgrid如何神奇地实现分页。 我无法看到分页按钮。 我也包含了ui.jqgrid.css文件。
在$(document).ready中我调用InitializeGrid和completeGrid。 分页一次显示记录。 例如,我将rowNum设为10,但在显示时显示“查看17-17中的1-17”。 相反,我希望它在第一页显示10条记录,在第二页显示7条记录。
下面是我的代码。
代码:
function InitializeGrid() {
jQuery("#sample").jqGrid({
datatype: function(postdata) {
},
pager: '#gridpager',
colNames: colNames,
pgbuttons: true,
colModel: colModel,
hoverrows: false,
hidegrid: false,
shrinkToFit: true,
altRows: true,
scroll: true,
viewrecords: true,
footerrow: false,
gridView: true,
caption: 'Information',
loadonce: false,
sortable: false,
rowNum: 10,
cmTemplate: { title: false },
jsonReader: {
root: "Data",
page: "CurrentPage",
total: "TotalPages",
records: "TotalRecords",
repeatitems: false,
id: "0"
},
});
}
function completeGrid(gridData) {
gridRows = gridData;
var grid = $("#sample ");
grid.clearGridData();
var addRow;
var gridData = { Data: [], CurrentPage: 1, TotalPages: 1, TotalRecords: 1};
for (var i = 0; i < gridRows.length; i++) {
addRow = {
Group: gridRows[i].Group,
Member: gridRows[i].Member
};
gridData.Data.push(addRow);
}
for (var j = 0; j < gridRows.length; j++) {
jQuery('#sample').addRowData( j, gridData.Data[j]);
}
}
答案 0 :(得分:1)
在我看来,你必须在选项中指定rowList
数组:
rowList:[10,20,30],
并尝试从json reader中删除尾随的','
逗号:
jsonReader: {
root: "Data",
page: "CurrentPage",
total: "TotalPages",
records: "TotalRecords",
repeatitems: false,
id: "0"
}, // <----------this comma
如果您的数据是动态提交的,那么您必须使用
loadOnce: true,
这是必需的。
答案 1 :(得分:0)
您需要在获取数据时进行分页。
Asp.net C#中的示例代码
//Get the page number and page size from query string.
int iPage = int.Parse(Request.QueryString["page"]);//get the requested page
int iLimit = int.Parse(Request.QueryString["rows"]); //get how many rows you want to display
//Taking requires no of records for required page
//using LINQ query.
var Res = res.Skip((iPage - 1) * (iLimit)).Take(iLimit).ToList();