我想知道是否有更好的方法从服务器加载大型Json数据集。jqgrid加载没有分页的大型数据集
我使用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",search:false},
{name:'name',index:'name', width:100,search:false},
{name:'amount',index:'amount', width:80, align:"right",sorttype:"float"},
{name:'tax',index:'tax', width:80, align:"right",sorttype:"float",search:false},
{name:'total',index:'total', width:80,align:"right",sorttype:"float",search:false},
{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,
multiselect: 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<data.rows.length;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);
}
您能否包含您当前使用的JavaScript代码?你使用数据的本地分页吗?你使用'gridview:true'参数吗? – Oleg 2011-04-14 14:38:35
@ Oleg - 感谢oleg。我使用了gridView参数。请找到最新的问题。 – Sam 2011-04-14 15:14:04
@Sam:我现在很忙,但如果你的问题直到星期六才能解决,我会给你写一些建议。什么'disableRow'?我不确定我是否理解'loadComplete'中的内容。如果在'amount'的过滤条中没有数据存在,你应该什么也不做。如果在数量上存在数据,数据将被过滤,您应该选择所有行。是这样吗?而且我没有看到'gridview:true'参数。你发布了你测试的真实例子的例子吗?测试中的加载时间有多长?哪个浏览器对你最重要? – Oleg 2011-04-14 16:47:34