2016-04-05 10 views
1

ページにjqgridsをいくつか持っていますが、いずれかのレコードを更新した後に両方のjqgridsをリロードしたいのですが。ここでページ内のすべてのjqgridをリロードする方法

は、私の体は...

<div style="position: relative; top: 40px; width:50%"> 
     <table id="list"><tr><td></td></tr></table> 
     <div id="pager"></div> 
    </div> 

    <div style="position: relative; top: -250px; left:50%;"> 
     <table id="list1"><tr><td></td></tr></table> 
     <div id="pager1"></div> 
    </div> 

で、ここでは後の最初のjqgridの機能を提出するためのスクリプトです...

afterSubmit:機能(応答、POSTデータ)

     { 

          if (response.responseText === "OK") 
          { 
           alert("Update is succefully"); 

           alert(this); 
           $(this).jqGrid("setGridParam", {datatype: 'json'}); 
           return [true, "", ""]; 

           alert("#list1"); 
           $("#list1").jqGrid("setGridParam", {datatype: 'json'}); 
           return [true, "", ""]; 
           // $(this).trigger('reloadGrid'); 

          } 
          else { 
           alert("Update failed"); 
           return [true, "", ""]; 
          } 
         } 

このコードを使用すると、最初のjqgridはデータを更新した後にリロードされ、そのjqgridに更新されたデータが表示されますが、id#list1を持つ2番目のjqgridはリロード/リフレッシュされません。これはどうですか?

+0

今ここで私は、アラートを使用する場合(これ)はアラートの[オブジェクトHtmlTableElement] ..however(「#のリスト1」)を示し、それは、[オブジェクトのオブジェクト]を示し – Saurabh507

答えて

1

正確にはどのような意味が変わっているのかは不明です。 free jqGrid forkを使用する場合は、loadonce: trueオプションがある場合、サーバーからグリッドをリロードする推奨方法は、.trigger("reloadGrid", {fromServer: true})または$("#list").trigger("reloadGrid", [{fromServer: true, current: true, page: 1}]);the answerまたはthis oneを参照)を使用することです。したがって、次の操作を実行できます。

$(".ui-jqgrid-btable").trigger("reloadGrid", {fromServer: true}); 

あなたはafterSubmitのようないくつかのコールバックの内側に格子状のリロードをトリガーする必要があるなら、私はあなたが前afterSubmitの処理を完了できるようにするためにsetTimeoutに上記のコードをラップすることをお勧めしますグリッドのリロード:

afterSubmit: function() { 
    setTimeout(function() { 
     $(".ui-jqgrid-btable").trigger("reloadGrid", {fromServer: true}); 
    }, 50); 
    return [true, "", ""]; 
} 
+0

ええ、私は自由を使用していますjqGridにはloadonce:trueがありますが、この$( "#list1")。trigger( "reloadGrid"、{fromServer:true});動作しません。それはちょうど2番目のjqgridは、私の最初のグリッドがこのコードでリロードされる再ロードされません... $(this).jqGrid( "setGridParam"、{datatype: 'json'}); return [true、 ""、 ""]; – Saurabh507

+0

@ Saurabh507:無料のjqGridを使用するようにしていますか?どのバージョンの無料のjqGridを使用しますか? (あなたは 'jquery.jqgrid.src.js'または' jquery.jqgrid.min.js'を開いて、最初のコメントで** jqGrid 4.13.1 - free jqGrid **を参照してください)。 GitHub [here](https://github.com/free-jqgrid/jqGrid)から最新バージョンをロードするか、CDNから使用することをお勧めします。[wiki記事](https://github.com/free)を参照してください。 -jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDN)を使用します。 – Oleg

関連する問題