0

jqGrid が長くなると、編集可能な jqGrid の動作に問題があります。編集不可のセルをクリックして編集済みのセルを送信すると、ユーザーはグリッドの一番上に移動します。ランダムにクリックすると、予測できない結果が大量に生成されます。フォーカスされる要素は「top:-1000000px」に設定されています。これに対する良い解決策は何ですか?focusこの要素のイベントをオーバーライドする方法はありますか?

<script type="text/javascript">
function populateTable(table) {
    for(i = 0; i < 1000; i++) {
        table.addRowData(i, {key:'Lorem', value:'Ipsum'});
    }
}

$(document).ready(function() {
    $("#grid").jqGrid({
        datatype : "local",
        colNames : ["Key", "Value"],
        colModel: [
         {name:'key', index:'lever', width:500, editable: true},
         {name:'value', index:'defaultcpm', width: 100, editable: true},
        ],
        height: 'auto',
        cellEdit: true,
        cellSubmit: 'clientArray'
    });
    populateTable($("#grid"));
});
</script>
</head>
<body>
<table id="grid"></table>
</html>

編集:私は十分に具体的ではなかったと思います。編集後にフォーカスを変更したくありません。HTMLDivElement次のコードはこれを修正しますが、非グリッドがフォーカス イベントを受け取ると副作用があります。

HTMLDivElement.prototype.focus = function() {}
4

1 に答える 1

1

フォーカスを設定する場合は、colModel のセルを編集可能にする必要があります。これも貼ってみてください

$("#grid").jqGrid('editCell', 1, 1, true);あなたのコードで。

1 行 1 列目にフォーカスを設定します

于 2012-09-18T09:05:27.873 に答える