我想知道是否有更好的方法从服务器加载大型Json数据集.
我使用jqgrid作为loadonce:true.我需要一次加载大约1500条记录,我也不使用分页选项.有没有更好的方法来实现这一目标?先感谢您.
这是我的网格代码 –
$(function(){
$("#testgrid").jqGrid({
url:getGridUrl,datatype: 'json',mtype: 'GET',height: 250,colNames:['Inv No','Date','Client','Amount','Tax','Total','Notes'],colModel:[
{name:'id',index:'id',width:60,sorttype:"int",search:false},{name:'invdate',index:'invdate',width:90,sorttype:"date",{name:'name',index:'name',width:100,{name:'amount',index:'amount',width:80,align:"right",sorttype:"float"},{name:'tax',index:'tax',sorttype:"float",{name:'total',index:'total',{name:'note',index:'note',width:150,sortable:false,search:false}
],multiselect: true,multiboxonly:true,caption: "Manipulating Array Data",pager: '#testgridpager',//Auto load while scrolling
//scroll: true,//to hide pager buttons
pgbuttons:false,recordtext:'',pgtext:'',loadonce: true,sortname: 'id',sortorder: 'asc',viewrecords: true,jsonReader : {
root: "rows",//page: "page",//total: "total",records: "records",repeatitems: false,cell: "cell",id: "id"
},loadComplete: function(data) {
var rowId;
//alert(data.length);
//alert('load complete'+data.rows.length);
//set checkboxes false if mode is set to true
if(mode){
for(var i=0;i
rowId=data.rows[i].id;
disableRow(rowId);
var searchVal = $("#gs_amount").val().trim();
if(searchVal ==data.rows[i].amount){
jQuery("#testgrid").jqGrid('setSelection',rowId);
//heighlightSearch();
}
}
}
}
});
//toolbar search
$("#testgrid").jqGrid('filterToolbar',{stringResult:true,searchOnEnter:false});
});
function disableRow(rowId){
$("#testgrid").jqGrid('setRowData',rowId,false,{color:'gray'});
var trElement = jQuery("#"+ rowId,$('#testgrid'));
trElement.removeClass("ui-state-hover");
trElement.addClass('ui-state-disabled');
trElement.attr("disabled",true);
}