2016-05-13 5 views
0

私のUIでは、カラムにフィルタを適用し、フィルタリングされたデータを取得するグリッドがあります。このような値は:私のRESTリクエストで、私のUIをキーとして、フィルタを送信しているEXTJSのBufferedGridオブジェクトからフィルタを抽出する方法

filter:[{"operator":"gt","value":222,"property":"qty_raw"}] 

と、私は同じことを送ることができるように(ComponentQueryを使用して)同じグリッドから同じフィルタデータを抽出したいですクロームツールのフィルタボタンのクリックハンドラで別の要求で/フィルター(1列以上)、私はこのようなEXTJSでコードを書いています、

var gridObj = Ext.ComponentQuery.query('myGridId')[0]; 
var filters = gridObj.store.getFilters(); 
console.log("print filters.....",filters); 

フィルタは、私がデータを必要とする次のスナップショット、のようになります。アイテムやマップにありますが、データにアクセスできません。これを行うより良い方法があるかどうかわかりません。助言がありますか?

filters collection as shown on chrome developer tool

アップデート:私は、店lastOptionsプロパティを使用して、それをやってみました、それはまだ動作していません(エラー:キャッチされない例外TypeError:未定義のプロパティ 'のparams' を読むことができません)

 var gridObj = Ext.ComponentQuery.query('Grid_xx')[0]; 
    var lastOptions = gridObj.store.lastOptions, 
    lastParams = Ext.clone(lastOptions.params); 
    lastParams.limit = limit; //;var limit = gridObj.store.getTotalCount(); 
    lastParams.page = page; // var page = 1 
    lastParams.start = start; // var start= 1 
    lastParams.columnsNameArray = JSON.stringify(columnsNameArray); 
    console.log("columnArray............ =",lastParams.columnsNameArray); 
    var encodedFilename = Ext.urlEncode(lastParams); 
    Ext.create('Ext.Component', { 
     renderTo: Ext.getBody(), 
     //url: EfwSlamUI.Config.restUrl.GridExport, 
     cls: 'x-hidden', 
     params: lastParams, 
     autoEl: { 
      tag: 'iframe', 
      src: Abc.Config.restUrl.GridExport + '?' + encodedFilename} 
}); 

答えて

0

1つの提案:

最後のストアリクエストで使用された最後のパラメータを自動的に使用するため、store.reload()関数を使用する方がよいでしょう。

https://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.data.BufferedStore-method-reload

あなたは、グリッドや店舗でのフィルタ/ソーターを変更することができます。

https://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.data.BufferedStore-property-lastOptions

あなたはグリッドのオートリロードを防ぐたい場合は、フィルタが変更された場合、店の自動ロードを無効にします。

+0

私のもう1つの要求はキーを送信しています:値ペアurlEncodedパラメータとしてオブジェクト。私はどのようにキーを抽出するのか分からない:BufferedGrid(フィルタリングされた)要求が既にロードされているから値のペアを取得すると、すべてが画面にロードされた後にボタンのクリックイベントが発生し、SpringMVCのrequestMappingメソッド要求に応じてExcelファイルをUIに送信します。私はあなたの提案を使用して再試行したコードで自分のqusを更新しましたが、うまくいきません。 – Jammy

関連する問題