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; }