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 年的 View 1-400。

如果我继续缓慢滚动,我会看到 View 1-600 of 2000。

我们还可以在演示http://www.trirand.com/blog/jqgrid/jqgrid.html -> New in 3.7 -> True Scrolling 中看到相同的错误。

有人可以建议我一个解决方法。

4

3 回答 3

1

它按设计工作...如果您缓慢滚动,它会将记录添加到表中-因此您可以向上滚动并且数据仍然存在-如果您快速滚动,则删除当前数据,并且仅使用数量添加新数据您在与滚动位置匹配的起点指定的行

于 2012-06-19T17:03:06.107 回答
1

viewrecords如果需要,您可以使用以下选项关闭数字:

viewrecords: false

jqGrid文档有更多详细信息:

如果为 true,jqGrid 将在查询中的记录总数中显示网格中的开始和结束记录数。此信息以以下格式显示在寻呼栏(默认右下角)中:“从 Z 中查看 X 到 Y”。如果这个值为真,还有其他参数可以调整,包括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 回答