2016-11-18 42 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)。