在jqgrid中维护滚动状态

时间:2015-11-06 11:43:25

标签: javascript jquery jqgrid

每次刷新var scrollPosition = $("#"+grid_id).closest('.ui-jqgrid-bdiv').scrollTop(); $("#"+grid_id).trigger("reloadGrid", [{current:true}]); $("#"+grid_id).closest('.ui-jqgrid-bdiv').scrollTop(scrollPosition); 时如何保持滚动状态?我尝试了以下方法:

$("#"+grid_id).closest('.ui-jqgrid-bdiv').scrollTop();

但它不起作用,滚动条在网格刷新后移回顶部。

此外,0每次输出$("#"+grid_id),但网格有滚动条。选择器参数(enter code here If AttendsClass(1) = True Then PictureBox1.Image = My.Resources._new End If If AttendsClass(2) = True Then PictureBox2.Image = My.Resources._new End If If AttendsClass(3) = True Then PictureBox3.Image = My.Resources._new End If If AttendsClass(4) = True Then PictureBox4.Image = My.Resources._new End If )是否不正确?那应该是什么?

1 个答案:

答案 0 :(得分:2)

我想您尝试在之前设置scrollTop 数据加载到网格中。我建议您将scrollTop保存到网格的自定义选项,并重置loadComplete回调或jqGridAfterLoadComplete事件内的位置。

要保存滚动顶部位置,您可以使用

var $grid = $("#"+grid_id),
    p = $grid.jqGrid("getGridParam");
p.scrollTopPosition = $grid.closest(".ui-jqgrid-bdiv").scrollTop();

要恢复您可以使用的位置

$("#"+grid_id).bind("jqGridAfterLoadComplete", function () {
    var $self = $(this), p = $self.jqGrid("getGridParam");

    if (p.scrollTopPosition !== undefined) {
        $self.closest(".ui-jqgrid-bdiv").scrollTop(p.scrollTopPosition);
        p.scrollTopPosition = undefined;
    }
});