1

さまざまな種類のフィルターとその使用方法を理解するのに非常に苦労しているので、最初から始めて、徐々に難易度を上げることにしました。ExtJS 4のドキュメントから入手した最も単純なフィルターを試しました。コントローラー、ストロー、モデル、ビューがあり、バックエンドにCodeIgnaiterを使用しています。私がやったことをボトムアップしたいので、これは次のとおりです。

Ext.define('ABC.store.FilterRecordsByForm', {

    extend: 'Ext.data.Store',
    model: 'ABC.model.FormRecord',

    autoLoad: true,
//  autoSync: true,
//  remoteFilter: true,
//  remoteSort: false,

    proxy: {
        type: 'ajax',
        actionMethods: 'POST',
        api: {
         read:  g_settings.baseUrl + 'index.php/record/getRecordsListByForms'


        },
        reader :{
            type: 'json',
            root: 'data',
            idProperty: 'id',
            successProperty: 'success'
        }
    },

        filters: [
        {
            property: 'procedure_id',
            value   : 3
        }
    ]

});

したがって、ここではExtJS 4のドキュメントの例を使用し、フィルターをストローにハードコーディングしました。ここまでは順調ですね。期待どおりに動作します。しかし、ここで、valueフィールドに変数を値として取得し、フィールドの値が変更されるたびにフィルターを再ロードするようにしますvlue。私は、Extフィルターの正確な実装をこことどこで使用するかについて少し混乱しています。私はそれをコントローラーに配置する必要があると思いますが、フィルターを変更して新しい値に応答する方法がわかりません。サーバー側のコードを変更する必要がありますか、それともクライアント側でのみ変更できますか? ?

ありがとう

レロン

4

1 に答える 1

3

ストアでremoteFilerがtrueに設定されている場合は、次のようにすることができます。

store.clearFilter();
store.filter('procedure_id', new_value);

これにより、ストアは新しいフィルターに従ってコンテンツをリロードします。

于 2012-04-30T19:23:21.050 に答える