我使用大约100行数据加载jqgrid。当数据完成加载到jqgrid时,我想自动滚动jqgrid,以便某个行位于顶部。最上面一行将取决于加载的数据(例如:第三列包含值“1”的第一行等)。有没有办法做到这一点?加载数据后自动滚动jqgrid
感谢
我使用大约100行数据加载jqgrid。当数据完成加载到jqgrid时,我想自动滚动jqgrid,以便某个行位于顶部。最上面一行将取决于加载的数据(例如:第三列包含值“1”的第一行等)。有没有办法做到这一点?加载数据后自动滚动jqgrid
感谢
我发现使用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;
}
}
}
gridComplete: function() {
var gridScroll = $('div.ui-jqgrid-bdiv');
gridScroll.scrollTop(gridScroll[0].scrollHeight - gridScroll.height());
}
解决最彻底的方法是这样做的:
gridComplete: function() {
$("#"+$('#GRID').jqGrid('getGridParam','selrow')).focus();
}
该解决方案运行良好。我还添加了一个“$('selector')。effect('highlight')”来强调用户刚刚修改的行。 – Chris 2014-01-13 15:02:03
你可以使用$( '#grid_id')最接近。 ('div.ui-jqgrid-bdiv'),它会返回表格的div容器,并且在遍历dom时可能这种方式更高效。 – houss 2017-01-20 18:02:05