2016-11-18 44 views
1

我有一個JQuery電網是基於某些下拉選擇點擊一個按鈕被填充。jQuery的電網負荷,而不是重裝後續點擊

網格在第一次按鈕單擊時加載數據。但在隨後的點擊上,網格不會根據更改的下拉選擇重新加載。

加載到第一個按鈕單擊的網格數據一直持續到除非我重新加載頁面。

我已經經歷了一些解決方案了網上,如使用$("#tblJQGrid").trigger("reloadGrid");後續點擊,除了第一次點擊

  • cache:false財產

    但是沒有一次成功。

    這裏是我的參考

    function BindGridData() 
    { 
        $("#tblJQGrid").jqGrid(
          {url: "@Url.Action("GetGeographyBreakUpData", "GeoMap")"+ "?Parameters=" + Params + "", 
           datatype: "json", 
           //data: { "Parameters": Params }, 
           async: false, 
           mtype: 'GET', 
           cache: false, 
           colNames: ['Id','GeoGraphy', 'Completed', 'InProgress'], 
           colModel: [ 
           { name: 'Id', index: 'Id', width: 20, stype: 'text',hidden:true }, 
           { name: 'Geography', index: 'Geography', width: 150 }, 
           { name: 'Completed', index: 'Completed', width: 150 }, 
           { name: 'InProgress', index: 'InProgress', width: 150 }, 
           ], 
           pager:'#pager', 
           jsonReader: {cell:""}, 
           rowNum: 10, 
           sortorder: "desc", 
           sortname: 'Id', 
           viewrecords: true, 
    
           caption: "Survey Status:Summary", 
           scrollOffset: 0}); 
    
    } 
    

    jqgrid代碼和這裏是我如何初始化按鈕點擊事件

    $(document).ready(function() { 
    var firstClick=true; 
         $("#btnSubmit").click(function(){ 
          btnSubmitClick(); 
          debugger 
          if(!firstClick) 
          { 
           $("#tblJQGrid").trigger("reloadGrid"); 
          } 
          firstClick=false; 
          BindGridData(); 
         }); 
    }); 
    

    誰能告訴我什麼,我做錯了什麼?

  • +0

    這可能是對你有所幫助,工作示例http://trirand.com/blog/jqgrid/jqgrid.html –

    回答

    0

    似乎有典型的誤解代碼$("#tblJQGrid").jqGrid({...});做什麼。這是創建電網。這意味着在將空表<table id="btnSubmit"></table>轉換爲相對複雜的div和表結構。見here。在理解了之後,應該清楚的是第二次調用BindGridData沒有意義,因爲table#btnSubmit不是更空。 jqGrid測試它並且什麼都不做。因此,您當前的代碼只需觸發reloadGrid舊的 URL(請參閱Params)。

    要解決這個問題,你有兩個主要選擇:

    1. 使用url: "@Url.Action("GetGeographyBreakUpData", "GeoMap")"postData定義爲功能(見the old answer
    2. 重新上點擊而不是電網觸發reloadGrid性能。在致電BindGridData之前,您可以撥打GridUnload方法(請參閱the old answer)。