1

我有一个启用了内联编辑、虚拟滚动和键绑定的 jqGrid。我没有启用多选(这是我迄今为止的搜索所产生的结果)。

当我按下向下箭头时,将选择网格中的下一行。当我选择的值到达可见区域的底部时,网格会滚动以适应新选择的行。

当我到达第 40 行(我的 rowNum)时,向下键什么也不做。我一半希望它加载接下来的 40 行,但我想我应该知道得更好。

我的问题是,“如何使用向下箭头的按键来加载接下来的 40 条记录并将它们附加到网格中?”

使用鼠标滚轮或拖动滚动条可以正常工作。但是,如果我告诉他们必须用鼠标滚动来加载额外的数据,我的用户会大发雷霆。

“为什么不能直接将鼠标滚轮代码插入向下箭头代码?

为什么这需要这么长时间!?

为什么你不能做这个工作。”

等等等等。

我知道以下方法:

$("#grid").jqGrid('setGridParam',{page:2});
$("#grid").trigger("reloadGrid");

但是,我不确定如何将它们插入 keydown / onSelectRow 事件。此外,我担心数据被修剪后向上滚动。

这是一些网格代码:

grid.jqGrid({
    scroll: 1,
    url: dataUrl,
    datatype: "json",
    rowNum: 40,
    editurl: editUrl,
    colNames: dataHelper.columnNames(),
    colModel: dataHelper.columnModels(),
    rownumbers: true,
    rownumWidth: 30,
    altrows: true,
    autowidth: true,
    viewrecords: true,
    pager: pagerId,
    sortname: "id",
    sortorder: "desc",
    gridview: true,
    jsonReader:{repeatitems: false},
    ondblClickRow: function(){
        var row_id = grid.getGridParam('selrow');
        $(grid).editRow(row_id, true);
    },
    onSelectRow: function(rowid, status, e){
        var reccount = grid.getGridParam("reccount");
        var page = grid.getGridParam("page");

        if(****SOME CONDITION****){
            grid.jqGrid('setGridParam',{page: page+1});
            grid.trigger("reloadGrid");
        }
    }
});
grid.jqGrid('navGrid', pagerId,{edit:false,add:false,del:false, searchtext: "Search", refreshtext: "Refresh"});
grid.jqGrid("inlineNav", pagerId, {edittext: "Edit", addtext: "Add", savetext: "Save", canceltext: "Cancel", deletetext: "Delete", addParams: {position: "afterSelected"}});
grid.jqGrid("filterToolbar", {stringResult: true, searchOnEnter: true});
grid.jqGrid("bindKeys", {scrollingRows: true, onEnter: function(rowid){grid.editRow(rowid, true);}});
4

0 回答 0