如何仅在免费 jqgrid 中有多个页面时才显示寻呼机
How to show pager only if there is more than one page in free jqgrid
使用带有顶级工具栏的免费 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,
...
按钮和分页器位于工具栏的左侧,呈现为行内块元素。
在中心部分。
使用答案中的代码删除了顶级工具栏的左右部分
$("#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", "");
});
相同的代码用于编辑具有不同行数的表。
如何仅在超过一页(超过 50 行)时才在顶级工具栏中显示 jqgrid 寻呼机?
许多表包含的行很少,不需要显示分页器。
如果添加新行,分页器应该自动或交替出现,用户可以刷新页面以强制出现分页器。
更新
使用快速检索的远程分页数据
how to retrieve colmodel and data on single request and speed up jqgrid load
只返回 pagesize+1 行。
JSON 结果是在 ASP.NET MVC4 中创建的,没有记录值:
return new
{
total = rowList.Count() < rows ? page : page + 1,
page,
rows = rowList
};
p.reccount 和 p.records 始终具有相同的值,因此永远不会显示寻呼机。
在这种情况下如何有条件地显示寻呼机?
也许应该使用页面中的记录与页面大小进行比较?
如果我正确理解你可以使用的问题
loadComplete: function () {
var p = $(this).jqGrid("getGridParam"),
$topPagerButtons = $(p.toppager + "_center").find(">.navtable>table.ui-pg-table");
$topPagerButtons[p.reccount < p.records ? "show" : "hide"]();
}
参见the demo。演示中你可以选择在页面上显示20行或更多行,带有分页器的按钮将被隐藏。
使用带有顶级工具栏的免费 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,
...
按钮和分页器位于工具栏的左侧,呈现为行内块元素。
在中心部分。
使用答案中的代码删除了顶级工具栏的左右部分
$("#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", "");
});
相同的代码用于编辑具有不同行数的表。 如何仅在超过一页(超过 50 行)时才在顶级工具栏中显示 jqgrid 寻呼机?
许多表包含的行很少,不需要显示分页器。
如果添加新行,分页器应该自动或交替出现,用户可以刷新页面以强制出现分页器。
更新
使用快速检索的远程分页数据 how to retrieve colmodel and data on single request and speed up jqgrid load
只返回 pagesize+1 行。 JSON 结果是在 ASP.NET MVC4 中创建的,没有记录值:
return new
{
total = rowList.Count() < rows ? page : page + 1,
page,
rows = rowList
};
p.reccount 和 p.records 始终具有相同的值,因此永远不会显示寻呼机。 在这种情况下如何有条件地显示寻呼机? 也许应该使用页面中的记录与页面大小进行比较?
如果我正确理解你可以使用的问题
loadComplete: function () {
var p = $(this).jqGrid("getGridParam"),
$topPagerButtons = $(p.toppager + "_center").find(">.navtable>table.ui-pg-table");
$topPagerButtons[p.reccount < p.records ? "show" : "hide"]();
}
参见the demo。演示中你可以选择在页面上显示20行或更多行,带有分页器的按钮将被隐藏。