0

私はすべてのハイカーの専門分野を取得するためにストアを使用しています(したがって、ハイカーには多くの専門分野があります)。ただし、現在選択されているハイカーに対して、この専門分野が追加/削除/表示される詳細ウィンドウがあります(はい、詳細ウィンドウです)。

ここでの私の問題は、私のストアがすべてのハイカーのデータをフェッチすることですが、詳細ウィンドウが表示されているときに、特定のハイカーのデータのみを表示したいと思います。データグリッドにデータを表示しているので、ユーザーがフィルターを追加できる可能性があることにも注意してください。ユーザーがデータグリッドを使用してフィルターをstore.filter({...})追加し、ユーザーがデータグリッドを使用してフィルターを追加すると、フィルターが削除されることに気付きました(基本的には役に立たない) 。

どのアプローチを使用する必要がありますか?何か提案はありますか?ハイカーごとに1店舗を考えていましたが、このソリューションは好きではありません。

編集1: データグリッドがフィルターを作成するのと同じ方法でフィルターを作成できないことにも気づきました。

Ext.create('Ext.util.Filter', {
      type: 'numeric',
      comparison: 'eq',
      field: 'hiker_id',
      property: 'hiker_id',
      value: me.hiker.get('id'),
      root: 'data'
    })

すでにグリッドフィルターを解析する機能をサーバー側に実装しているので、これは退屈です。

4

2 に答える 2

2

フィルターを json 形式でストアの追加パラメーターに渡すだけです。そして、そのバックエンドを解析します。グリッドをページングまたはリフレッシュしている間、追加のパラメーターは同じままです。

grid.getStore().getProxy().extraParams = { filter: yourFilter };
于 2012-08-13T06:38:48.630 に答える
1

-どのように- ユーザーはフィルターを行っていますか?

store.filter配列と関数の両方を受け入れるため、サーバー上のデータを実際にジャグリングすることなく、かなりのことを行うことができます。(たとえば、フィルターに渡される配列を管理する、どこかのオブジェクトに対してテストするなど)

永久フィルター? それほど多くはありませんが、複数のフィルターなどを追加できるため、どのフィルターが配置されているかを追跡するのは比較的簡単です.

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-filter

于 2012-08-13T14:21:48.617 に答える