2013-10-15 80 views
1

我在我的項目上使用jqGrid,我有一個問題,即使在閱讀同一主題上的論壇後,仍然無法解決問題。JqGrid無法在點擊按鈕後重新加載

我會重新加載網格,當用戶點擊一個按鈕後選擇一個日期。我希望數據充值對象選擇日期。

我使用下面的代碼:

var loadfacture = false; 

    $('#btn-facture').click(function(){  

     if(!loadfacture){   

      $("#factures").jqGrid({ 
       url:'loadfactureencours.json', 
       datatype: "json",   
       autowidth: true, 
       height:250, 
       colNames:['#','Numero','Date', 'Client','Serveur','Prix Total','Avance','Regler','Notes'], 
       colModel:[ 
        {name:'idfac',index:'idfac', width:45,align:"center"}, 
        {name:'numfac',index:'numfac', width:80,align:"center"}, 
        {name:'datefac',index:'datefac', width:150,align:"center"}, 
        {name:'client',index:'client', width:145,align:"center"}, 
        {name:'utilisateur',index:'utilisateur', width:125,align:"center"},      
        {name:'montant',index:'montant', width:70,align:"center"}, 
        {name:'avance',index:'avance', width:60,align:"center"}, 
        {name:'regler',index:'regler', width:50,align:"center"}, 
        {name:'description',index:'description', width:150, sortable:false} 
       ], 
       rowNum:10, 
       rowTotal: 2000, 
       rowList : [10,20,30,40,50,60], 
       loadonce:true, 
       mtype: "GET", 
       postData: { 
        day: function() {      
         return $('#daySelect').val(); 
        } 
       }, 
       rownumbers: false, 
       rownumWidth: 40, 
       gridview: true, 
       pager: '#paging', 
       sortname: 'idfac', 
       viewrecords: true, 
       sortorder: "desc", 
       caption: "", 
       ondblClickRow: function(rowid,iRow,iCol,e){ 
        var rowData = jQuery(this).getRowData(rowid); 
        console.log(rowData); 
        window.location = "ecrancommandebar.html?num="+rowData.numfac; 
       } 
      }); 

      $("#factures").jqGrid('navGrid','#paging',{del:false,add:false,edit:false}); 
      loadfacture = true; 


     }else{   

      var grid = $("#factures"); 
        grid.trigger("reloadGrid",[{current:true}]); 

     } 

    }); 

我通過閱讀關於同一主題的論壇,但在電網負荷首次再建這段代碼,當我點擊按鈕更改日期後一無所獲發生。

你怎麼了?感謝您的反饋意見。

回答

4

您使用loadonce:true選項,來自服務器的數據的第一加載後改變datatype從最初"json""local"。它允許支持本地數據的排序,分頁和過濾。所以你應該明白grid.trigger("reloadGrid",[{current:true}]);將剛剛從先前保存的先前響應重新加載數據。因此,除非將datatype參數的值重置爲"json",否則不會從服務器重新加載。換句話說,你應該重寫else部分大約以下內容

... 
} else {   
    $("#factures").jqGrid("setGridParam", {datatype: "json"}) 
     .trigger("reloadGrid", [{current: true, page: 1}]); 
} 
0

你可以用這個嘗試:

}else{   
    var grid = $("#factures"); 
    $.ajax({ 
     url: "loadfactureencours.json", 
     dataType: "json", 
     success: function(data){ 
      grid.trigger("reloadGrid",[{current:true}]); 
     }, 
     error: function(){} 
    }); 

} 
相關問題