很是簡單的讓datagrid在海量數據的時候自動滾動到不可見的記錄

首先,要明白:datagrid在設置了pageSize的時候,那麼一次加載就只會有pageSize的這個數量的條數;spa

如今若是設置了屬性:code

view:scrollview,
pageSize:50,

那麼我能夠經過循環控制滾動的最大數量不超過五十條的記錄來實現自動滾動條:事件

//加載的本地數據,啓用datagrid的虛擬條
if(zdyUrl==""){
	$('#priceList').datagrid({
		view:scrollview,
		pageSize:50,
	});
	$('#priceList').datagrid('loadData', zdyLoadData.rows);
}

在每次加載完本地事件觸發了onLoadSuccess方法中這麼作:get

$('#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);
相關文章
相關標籤/搜索