jqGrid 4.0 bindKeys方法用上下方向键移动整个网格

jqGrid 4.0 bindKeys method move the whole grid with up and down arrow keys

本文关键字:移动 网格 方向 上下 bindKeys 方法 jqGrid      更新时间:2023-09-26

我正在使用jqGrid 4.0,并且遇到了一个问题。

下面是我的JavaScript代码:

$grid.jqGrid({
    url:'parties-process.php?action=SELECT',
    datatype: "json",
    colNames:['Party ID', 'Party Name', 'Balance', 'Opening Balance', 'Opening Debit', 'Options'],
    colModel:[
        {name:'partyID',index:'partyID', width:55},
        {name:'partyName',index:'partyName', width:150},
        {name:'balance',index:'balance', width:50, align:'right'},
        {name:'opening',index:'opening', hidden:true},
        {name:'openingdr',index:'openingdr', hidden:true},
        {name:'act',index:'act', width:150, sortable:false, align:'center', hidden:true}
    ],
    scroll: true,
    autowidth: true,
    height: myLayout.panes.center.outerHeight()-183,
    pager: jQuery('#pager'),
    rowNum:999,
    rowList:[10,20,30],
    sortname: 'partyID',
    viewrecords: true,
    sortorder: "desc",
    caption: "Parties",
    gridComplete: function(){
        var data = $grid.jqGrid('getDataIDs');
        for(var i=0;i < data.length;i++){
            var id = data[i];
            editbtn = "<small><a class='"editbtn'" onclick='"edit('"+id+"');'">Edit</a></small> ";
            deletebtn = "<small><a class='"deletebtn'" onclick='"del('"+id+"');'">Delete</a></small>";
            $grid.jqGrid('setRowData',data[i],{act:editbtn+deletebtn});
        }
        $(".editbtn").button({
            icons: { primary: "ui-icon-pencil" },
            text: false
        });
        $(".deletebtn").button({
            icons: { primary: "ui-icon-close" },
            text: false
        });
    }
}).jqGrid('bindKeys');

问题是,当我按向上和向下箭头键时,各自的行被选中,但它也滚动整个网格

我这样做是为了解决这个问题:

$(grid).bind('keydown', function (e) {
  if (e.keyCode == 38 || e.keyCode == 40) e.preventDefault();
});