используется бесплатный jqgrid с панелью инструментов верхнего уровня:
$.extend(true, $.jgrid.defaults, {
mtype: 'POST',
iconSet: "fontAwesome" ,
navOptions: {
position: "center"},
autoResizing: { compact: true,widthOfVisiblePartOfSortIcon: 13 },
toppager: true,
viewrecords: false,
rowList: [50, 500, 1000],
rowNum: 50,
...
Кнопки и пейджер находятся в левой части панели инструментов и отображаются как элементы встроенного блока. в центральной части. Левая и правая части панели инструментов верхнего уровня удаляются с использованием кода из ответа в как поместить пейджер в конец верхней части панели инструментов в бесплатной jqgrid
$("#grid_toppager")
.find(".ui-pg-button")
.each(function (i) {
$(this).attr({
tabindex: String(i),
role: "button"
});
});
$("#grid_toppager_left").hide();
$("#grid_toppager_right").hide();
$("#grid_toppager_center").attr("colspan", "2");
$("#grid_toppager_center").css({ width: "", "text-align": "left", "white-space": "" });
$("#grid_toppager_center").find(">.navtable").append(
$("#grid_toppager_center").find(">table.ui-pg-table")
);
$("#grid_toppager_center").find(">.navtable>table.ui-pg-table").css({display: "inline-block"});
$grid.bind("jqGridAfterGridComplete", function () {
var p = $(this).jqGrid("getGridParam"), $toppager = $(p.toppager);
$toppager.find(".navtable").css("width", "");
});
Один и тот же код используется для редактирования таблиц с разным количеством строк. Как показать пейджер jqgrid на панели инструментов верхнего уровня, только если есть более одной страницы (более 50 строк)?
Многие таблицы содержат мало строк и показывать пейджер необязательно.
Если добавляются новые строки, пейджер должен появляться автоматически или попеременно, пользователь может обновить страницу, чтобы заставить пейджер появиться.
Обновить
Удаленные страничные данные со скоростным поиском используются в соответствии с как получить colmodel и данные по одному запросу и ускорить загрузку jqgrid
Возвращаются только строки pagesize+1. Результат JSON создается в ASP.NET MVC4 без значений записей:
return new
{
total = rowList.Count() < rows ? page : page + 1,
page,
rows = rowList
};
p.reccount и p.records всегда имеют одинаковые значения, поэтому пейджер никогда не отображается. Как показать пейджер условно в этом случае? Может быть, следует использовать сравнение записи на странице с размером страницы?