首先,要明白:datagrid在设置了pageSize的时候,那么一次加载就只会有pageSize的这个数量的条数;
现在如果设置了属性:
view:scrollview,
pageSize:50,
那么我可以通过循环控制滚动的最大数量不超过五十条的记录来实现自动滚动条:
//加载的本地数据,启用datagrid的虚拟条
if(zdyUrl==""){
$('#priceList').datagrid({
view:scrollview,
pageSize:50,
});
$('#priceList').datagrid('loadData', zdyLoadData.rows);
}
在每次加载完本地事件触发了onLoadSuccess方法中这么做:
$('#priceList').datagrid("selectRecord",practUid);//选中特定的记录
var rowIndex = $("#priceList").datagrid('getRowIndex',practUid);//如果该记录在可见范围中,那么rowIndex是存在的,如果不可见,会=-1;
var i =0;
while(rowIndex==-1){
i++;
$("#priceList").datagrid('scrollTo',50*i-1);//每次利用scrollTo滚动不大于五十的记录
if(i==50){//可以让记录数最大到50*50=2500条记录,可以被选中并显示
break;
}
}
//如果在OnloadSuccess:方法之外下的话,可以这么做,不利用setTimeout的话,会出错...
var zdyPageSize = $("#_list").datagrid('options').pageSize;
setTimeout(function(){$("#_list").datagrid('scrollTo',zdyPageSize*2-1);;},500);
$("#_list").datagrid('scrollTo',zdyPageSize-1);