2

私のJqGridコードは以下のとおりです

$('#grid').jqGrid({
    url: '',
    scroll: 1,
    postData: {
        ...
    },
    datatype: "json",
    mtype: 'POST',
    colNames: [....],
    colModel: [{
        name: 'source',
        index: 'source',
        width: '100',
        align: 'center',
        stype: 'select',
        searchoptions: {
            dataUrl: 'getSource'
            }
    }, { ...
    }],
    rowNum: 200,
    height: '450px',
    autowidth: false,
    shrinkToFit: true,
    rownumbers: true,
    pager: '#table-page',
    sortname: '...',
    viewrecords: true,
    sortorder: 'asc',
    caption: "Records",
    emptyrecords: "Empty records",
    loadonce: false,
    loadComplete: function() {
       ....
    },
    jsonReader: {
       ....
    }
});

グリッドをゆっくりスクロールして200に達すると、グリッドはリロードされますが、ビューには2000のビュー1-400が表示されます。

ゆっくりスクロールし続けると、2000年のビュー1-600が表示されます。

また、デモhttp://www.trirand.com/blog/jqgrid/jqgrid.html->3.7の新機能->True Scrollingで、同じバグを確認できます。

誰かが私に回避策を提案できますか?

4

3 に答える 3

1

設計どおりに機能します...ゆっくりスクロールするとテーブルにレコードが追加されます-上にスクロールしてもデータは引き続き存在します-速くスクロールすると現在のデータが削除され、次の数を使用して新しいデータのみが追加されますスクロール位置に一致する開始点で指定する行

于 2012-06-19T17:03:06.107 に答える
1

viewrecordsオプションを使用して、必要に応じて番号をオフにすることができます。

viewrecords: false

jqGridのドキュメントに詳細があります。

trueの場合、jqGridは、クエリ内のレコードの総数のうち、グリッド内の開始レコード番号と終了レコード番号を表示します。この情報は、ページャーバー(デフォルトでは右下)に「XからYをZから表示」の形式で表示されます。この値がtrueの場合、emptyrecordsやrecordtextなど、調整可能な他のパラメーターがあります。

于 2012-06-19T17:08:55.273 に答える
0

これは私のコードです:古いデータを削除しますが、スクロール位置は維持します:

beforeProcessing: function(data, status, xhr){
    // Prevent from loading duplicate data
    var firstId = data.rows[0].id;
    if (-1 != $("#"+firstId ).index()){
        return false;
    }

    // Keep scroll position
    $.scrolltop = $(this).closest(".ui-jqgrid-bdiv").scrollTop();

    // Clear old data -> This will make scroll position to zero
    $(this).jqGrid('clearGridData', true);

    // Show white Div portion
    $(this).parent().children('div').eq(0).show();
},
loadComplete: function (data) {
    // Set height of white Div portion
    $(this).parent().children('div').eq(0).height($.scrolltop);

    // Re-set scroll position
    $(this).closest(".ui-jqgrid-bdiv").scrollTop($.scrolltop);
}
于 2013-01-04T10:51:34.513 に答える