2016-11-18 6 views
1

特定のドロップダウン選択に基づいてボタンクリックに値を設定するJQueryグリッドがあります。Jqueryグリッドは1回目のクリックでのみロードされ、その後のクリックではリロードされません

グリッドには、最初のボタンクリック時にデータが読み込まれます。しかし、その後のクリックでは、変更されたドロップダウン選択に基づいてグリッドがリロードされません。

最初のボタンクリックで読み込まれたグリッドデータは、ページがリロードされない限り保持されます。

私は、最初のクリック

  • cache:falseプロパティを除き、後続のクリックの$("#tblJQGrid").trigger("reloadGrid");を使用して、このような

    1. として、オンラインいくつかのソリューションを通じて行っています。

    しかし、いずれも機能しませんでした。ここで

    は参照

    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の2番目の呼び出しには意味がありません。つまり、table#btnSubmitは空ではないためです。 jqGridはそれをテストして何もしません。したがって、現在のコードではreloadGridと置き換え、古いのURL(Paramsを参照)をトリガーします。

    1. 使い方url: "@Url.Action("GetGeographyBreakUpData", "GeoMap")"機能として定義されたプロパティを持つpostDatathe old answerを参照)
    2. をクリック代わりのreloadGridをトリガ上のグリッドを再作成:あなたは二つの主要なオプションがあり、問題を解決するには

      BindGridDataの前にGridUnloadメソッド(the old answerを参照)に電話することができます。

    関連する問題