2011-03-11 566 views
3

我使用大约100行数据加载jqgrid。当数据完成加载到jqgrid时,我想自动滚动jqgrid,以便某个行位于顶部。最上面一行将取决于加载的数据(例如:第三列包含值“1”的第一行等)。有没有办法做到这一点?加载数据后自动滚动jqgrid

感谢

回答

2

我发现使用gridComplete

gridComplete: function() { 
    var ids = jQuery("#my_jqgrid").jqGrid('getDataIDs'); 
    for (var i = 0; i < ids.length; i++) 
    { 
     var current_id = ids[i]; 
     var row_data = $("#my_jqgrid").getRowData(current_id); 
     if(row_data['status'] == '1') 
     { 
     var height = $("#"+current_id).attr('offsetHeight'); 
     var index = $("#dynamic_arrival_times").getInd(current_id); 
     $(".ui-jqgrid-bdiv").scrollTop(height*index); 
     return; 
     } 
    } 
    } 
1
gridComplete: function() { 
    var gridScroll = $('div.ui-jqgrid-bdiv'); 
    gridScroll.scrollTop(gridScroll[0].scrollHeight - gridScroll.height()); 
} 
+0

你可以使用$( '#grid_id')最接近。 ('div.ui-jqgrid-bdiv'),它会返回表格的div容器,并且在遍历dom时可能这种方式更高效。 – houss 2017-01-20 18:02:05

5

解决最彻底的方法是这样做的:

gridComplete: function() { 
    $("#"+$('#GRID').jqGrid('getGridParam','selrow')).focus(); 
} 
+0

该解决方案运行良好。我还添加了一个“$('selector')。effect('highlight')”来强调用户刚刚修改的行。 – Chris 2014-01-13 15:02:03