JqGrid若是是发送ajax请求,是阻塞式的,咱们能够先将grid渲染出来,而后在里面添加数据,经过异步加载的方式,来渲染grid,主要用到的函数
$("#gridKeiTouData")[0].addJSONData(jsonData);
,设定在loadComplete 事件里面,设定数据。javascript
例子
下面就是一个grid,异步加载数据,先渲染,后设定数据java
$("#gbox_gridKeiTouData").remove(); $("#wfgm1080KeiTouData").append("<table id='gridKeiTouData'></table>"); $('#gridKeiTouData').jqGrid({ data: dataList, datatype:"local", multiboxonly:true, cellEdit:false, cellsubmit:'clientArray', colNames:colNames, colModel:colModel, width:gridWidth, height:gridHeight, scrollOffset:0, rowNum:dataList.length, gridview: true, regional:'ja', beforeSelectRow: function(rowid, event){ },loadComplete(xhr){ //表格渲染出来后,在设定数据 var jsonData = getGridData(); $("#gridKeiTouData")[0].addJSONData(jsonData); } }); //-------------------------------------------------------------------------------------- //数据获取 //-------------------------------------------------------------------------------------- function getGridData(){ var url = "/test//getGrid.do"; var data = []; var ajaxParam ={ "value(No)" : $("#No").val() }; $.ajaxSettings.async = false; $.getJSON( url, ajaxParam, function(result,e) { if(result.error){ sofia.ui.showDialogJsMsg(result.type, result.text); }else{ data = result.resultList; } }); return data; }