0

理解するのに本当に苦労しています。あるいは、もっと正確に言うと、ストアのいずれかでフィルターを使用し、グリッドに情報をロードすることです。私にはもっと複雑なタスクがありますが、物事がどのように機能するかを理解するために、できるだけ単純な例を使用して物事がどのように発生するかを確認し、さらにロジックを追加して知識を磨くことにしました. しかし、まだ心強い結果が得られていないので、もう一度助けを求めています。

この場合、自分のストアを使用するモデルに gridPanel があります。

「レコードリストストア」

そして、私が持っています

xtype: コンボ;

次のようになります。

            xtype: 'combo',
            id: 'records_list_author_id',
            emptyText: 'Филтриране по автор',
            editable: false,
            store: 'Users',
            displayField: 'firstname',
            valueField: 'id',
            lastQuery: '',
                        triggerAction: 'all',
                        queryMode: 'remote',
                        typeAhead: false,
            width: 200,
            listeners: {
                          select: this._filterRecords
                   }

独自のストアを使用して、ユーザーから選択できるコンボボックスにデータをロードします。

最後の部分、選択機能は次のとおりです。

_filterRecords: function()
    {
        var recStore =  Ext.getStore('FilterRecordsByAuthor');
        var a = Ext.getCmp('records_list_author_id').getValue( );
        var rec = Ext.getStore('FilterRecordsByForm').getAt(a);
        recStore.filters.clear();
            //recStore.load();
        recStore.filter([{
            "property":'form_id',
            "value": 1
                   }]);
        console.log(recStore.load());
    },

フィルタリングされたデータを取得するために使用すると思われる 3 番目のストアがここにあります。問題は、コンソール ログにフィルターを送信したことが示されているが、毎回空の結果が得られることです。しかし、すべてが思ったとおりに機能する場合は、何らかの情報があるはずなので、間違いや不足がありますが、何をすべきかわかりません.

4

1 に答える 1

1

getValue()のコンボボックスは、ストア内のインデックスではなく、コンボボックスからの値を提供します。store.findExact('some_field', value)したがって、この値を取得した後、getAt()取得したインデックスを使用して、実際に次のようなレコードを検索する必要があります。

于 2012-04-23T11:17:04.063 に答える