Я показываю jqgrid с данными, которые отлично работают и я пытаюсь реализовать пейджинг поверх того, что не работает. Я просмотрел примеры здесь http://trirand.com/blog/jqgrid/jqgrid.html и попытался реализовать их.
Это довольно просто, но я не знаю, как jqgrid волшебным образом реализует подкачку. Я не могу видеть кнопки поискового вызова. Я также включил файл ui.jqgrid.css.
внутри $ (document).ready Я вызываю InitializeGrid и completeGrid. Pagination отображает записи сразу. Например, я дал rowNum как 10, но при отображении это говорит "View 1-17 of 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]);
}
}
Мне кажется, вам нужно также указать массив rowList
в параметрах:
rowList:[10,20,30],
и попробуйте удалить конечную ','
запятую из читателя json:
jsonReader: {
root: "Data",
page: "CurrentPage",
total: "TotalPages",
records: "TotalRecords",
repeatitems: false,
id: "0"
}, // <----------this comma
и если ваши данные идут динамически, вы должны использовать
loadOnce: true,
это необходимо.
Вы должны делать разбиение на страницы при получении данных.
Пример кода в Asp.net С#
//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();