2016-04-25 12 views
1

2つのタブ(タブA &タブB)があります。これらの2つのタブは、それぞれがそれぞれのインデックスにある単一のストアを共有します。 [0] - A,[1] - BExtJSのタブスイッチのグリッドパネル

私のコントローラのようなそのメニューの葉の上をクリックすると、負荷を初期化します

oMe.control({ 
    '#role-permission-grid-panel': { 

    edit: oMe.save, 

    beforerender: oMe.loadData, 

    }, 
    '#roles-applicationtype button': { 
    click: oMe.filterByApplication 
    } 
}); 

applicationtype buttonは、ロードされたデータのタブ切り替えが起こるのフィルタです。

現在のフィルタの値をキャッチしようとすると、コントローラはどのフィルタがクリックされたかを正常に示します。ただし、グリッドパネルのデータは更新されません。

SampleGridPanel /ビューは:

console.log('Application',oController.sDefaultToggle); 

は簡単に言えば、私は SampleControllerからのデータを更新し、 filterApplicationを呼び出すことで、私の SampleGridPanelからそれをキャッチしてみてください。私の SampleGridPanelinitComponentのために一度だけストア をロードします。私はcontrollerからviewに更新されたデータ(この場合は選択されたタブ)を渡したいと思います。この変更は最初の負荷のデータのみを識別するときに発生したと私はどのようにして通知するのですか?

私も少し混乱しています。私のコントローラでは、oMe.loadDatabeforerenderを呼び出すと、最後のタブ値がわかりますが、カスタムフィルタ関数からoMe.loadDataを呼び出すと、ストア全体がリロードされなくなりました。フィルター値に基づいてフィルターされた情報のみをロードします。

答えて

1

タブパネルのactivatedeactivateのイベントを聞くことができます。これらは、旧バージョンのExtJSでも利用できます。

ExtJS 6を使用している場合は、実際にChainedStoreの使用を検討する必要があります。

  • Aストアにはデータが含まれています。
  • グリッドはストアにはバインドされず、それぞれChainedStoreにバインドされます。
  • ChainedStoresのソースはストアに設定され、それぞれのグリッドに表示されるデータのみを取得するために異なるフィルタを使用します。

のExtJSのようGroupingFeatureまたはCellEditingChainedStoreを組み合わせるとき呈しのExtJSにバグがあった6.0.1ますのでご注意ください。これらはExtJS 6.0.2で修正する必要があります。

+0

私はExtJS 4.2を使用しています。タブが切り替わるときにロードされた値を再確認する必要がありました。問題は、一度ロードされると値を超えることがなくなったことです。たとえば、ツールバーでクリックイベントをトリガーして値を確認する方法がありますか、それが要素(つまりボタンアイテム)の追加/削除を満たす場合はありますか? – ralphcarlo

関連する問題