天天看點

jqGrid怎麼設定初始化頁面時不加載資料(不向伺服器請求資料)

  最近做一些表格一直用到jqGrid,今天遇到一個問題:

  1、就是頁面加載的時候資料不顯示,點選搜尋才根據請求從伺服器傳回并顯示内容。

  2、預設不從伺服器請求資料(不然在開發者工具下會顯示請求不到資料的報錯)

  通常的解決方法就是直接給$("#jqGridTable").jqGrid({})套一個function,但個人感覺這并不是最好的方法。

  我建議可以用:

  (1). 初始化$("#jqGridTable").jqGrid({})的時候設定datatype: 'local',即:

$("#grid").jqGrid({
    url:"http://localhost:8080/xxxx",
    datatype:"local"

});      

  (2)、當要加載資料的時候把datatype設定為json或者XML:

$("#jqGridTable").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');      

  執行個體:

if(devOnlyId!=""){
    $("#gridTable").jqGrid('setGridParam', {
        datatype:'json',
        postData: { "queryBean.devOnlyId":devOnlyId }, page: 1
    }).trigger('reloadGrid');
}else{
    $("#gridTable").jqGrid('setGridParam', {
        datatype:'json',
        postData: { "queryBean.devOnlyId":null }, page: 1
    }).trigger('reloadGrid');
};       

  資料隻給了rows的資料時,jqGrid加載本地資料:

//執行對象清單
$("#executeObject_table").jqGrid({
    dataType:"local",
    width :450,
    height : 200,
    viewrecords: true, 
    multiselect: true, 
    colModel:[
        {index:'id',name:'id',hidden:true}
        ,{index : 'typename',name : 'typename',label : '<s:text name="名稱"/>',align : 'center',width : 200}
        ,{index : 'typecode',name : 'typecode',label : '<s:text name="類型"/>',align : 'center',width : 200}
    ]
});
var data = JSON.parse($("#executeObject_table_hidden").val());
for(var i=0,len=data.length;i<len;i++){
     $("#executeObject_table").jqGrid('addRowData',i+1,data[i]);
}
//"[
{"id":"d7915253b9ed41bba420de780d3cd6f0","typecode":"windowsDesktop","typename":"windows桌面終端","remarks":"windows桌面終端"},
{"id":"a4243998b03a43558d5708573f361674","typecode":"windowsCloud","typename":"windows雲桌面","remarks":"windows雲桌面"}
]"
      

繼續閱讀