我使用 jqgrid 上一个版本。我使用 bindKeys 方法来支持键盘,并且可以使用 Up 和 Down 键选择一行。现在我想使用“page up/page down”在页面之间导航(下一个/上一个)如何做吗?
jQuery("#List1").jqGrid('bindKeys', {
});
请检查此代码:
$(grid).bind('keydown', function (e) {
var totalPages = $("#sp_1_List1_toppager").text();
var currentPage = grid.getGridParam('page');
//pagedown
if (e.keyCode == 34 && currentPage > 1) {
grid.jqGrid('setGridParam', { "page": currentPage - 1 }).trigger("reloadGrid");
}
//pageup
else if (e.keyCode == 33 && totalPages != currentPage) {
grid.jqGrid('setGridParam', { "page": page + 1 }).trigger("reloadGrid");
}
});
对于尝试在单元格编辑模式下执行此操作的任何人,这至少适用于 jqGrid 4.6.0:
在单元格编辑模式中,键绑定必须直接在 jqGrid 源代码中定义。尝试使用 bindKeys 或绑定 keydown 事件将不起作用。在这种情况下,将以下代码添加到 jqGrid 源的 GridNav 函数中的关键代码 switch 语句:
case 34: // Page Down – Previous page
var pager = $($t).jqGrid('getGridParam', "pager");
var page = $($t).jqGrid('getGridParam', "page");
if (pager && page > 1) {
$($t).jqGrid('setGridParam', { "page": page – 1 }).trigger("reloadGrid");
}
break;
case 33: // Page Up – Next page
var pager = $($t).jqGrid('getGridParam', "pager");
var page = $($t).jqGrid('getGridParam', "page");
var lastpage = $($t).jqGrid('getGridParam', "lastpage");
if (pager && page < lastpage) {
$($t).jqGrid('setGridParam', { "page": page + 1 }).trigger("reloadGrid");
}
break;
如果你还想让 Home 键跳转到第一页, End 键跳转到最后一页,添加这些:
case 36: // Home – First page
var pager = $($t).jqGrid('getGridParam', "pager");
var page = $($t).jqGrid('getGridParam', "page");
if (pager && page !== 1) {
$($t).jqGrid('setGridParam', { "page": 1 }).trigger("reloadGrid");
}
break;
case 35: // End – Last page
var pager = $($t).jqGrid('getGridParam', "pager");
var page = $($t).jqGrid('getGridParam', "page");
var lastpage = $($t).jqGrid('getGridParam', "lastpage");
if (pager && page !== lastpage) {
$($t).jqGrid('setGridParam', { "page": lastpage }).trigger("reloadGrid");
}
break;