Me preguntaba si hay una mejor manera de cargar grandes conjuntos de datos Json desde el servidor.jqgrid carga el gran conjunto de datos sin paginación
Estoy usando jqgrid como loadonce: true. Necesito cargar alrededor de 1500 registros a la vez y tampoco utilizo las opciones de paginación. ¿Hay alguna forma mejor de lograr esto? Gracias de antemano.
Este es mi código Grid -
$(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);
}
¿Podría incluir el código de JavaScript que usa actualmente? ¿Utiliza paginación local de los datos? ¿Utiliza el parámetro 'gridview: true'? – Oleg
@Oleg - Gracias oleg. utilicé el parámetro gridView. Por favor encuentre la pregunta actualizada. – Sam
@Sam: estoy muy ocupado ahora, pero si su problema no se resuelve hasta el sábado, le escribiré algunas sugerencias. ¿Qué significa 'disableRow'? No estoy seguro de entender lo que haces dentro de 'loadComplete'. Si en la barra de filtro de 'amount' no existen datos, no debe hacer nada. Si en 'cantidad' los datos existen, los datos se filtran y debe seleccionar todas las filas. ¿Es tan? Además, no veo el parámetro 'gridview: true'. ¿Es el ejemplo que publicó el ejemplo real que probó? ¿Cuánto tiempo dura la carga en sus pruebas? ¿Qué navegador es el más importante para ti? – Oleg