0

レコードが多すぎるため、リモート ストアとリモート ページネーションを使用するグリッドがあります。メイン グリッドのストアは次のとおりです。

Ext.define('ArD.store.RecordsListStore', {

    extend: 'Ext.data.Store',
    model: 'ArD.model.RecordsListModel',

    autoLoad: true,
    autoSync: true,
    remoteSort: true,
    remoteFilter: true,

    pageSize: 15,


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

            destroy: g_settings.baseUrl + 'index.php/recordslist/deleteRecord'
        },
        reader: {
            type: 'json',
            root: 'data',
            totalProperty: 'totalCount',
            successProperty: 'success'  
        },
        writer: {
            root: 'data',
            writeAllFields: true,
            encode: true
        }
    }


});

次に、グリッドにデータを入力すると、すべて問題ありません。しかし問題は、次のようなコンボボックスがあることです。

{
                            xtype: 'combo',
                            id: 'records_list_form_id',
                            emptyText: 'Choose Form',
                            editable: false,
                            store: 'FilterRecordsByForm',
                            displayField: 'title',
                            valueField: 'id',
                            lastQuery: '',
                            triggerAction: 'all',
                            queryMode: 'remote',
                            typeAhead: false,
                            width: 200,
                            listeners: {
                                select: this._filterRecords
                            }
                        }

そして、コンボボックスから何かを選択すると、関数があります:

_filterRecords: function()
    {
        var recStore =  Ext.getStore('RecordsListStore');
        var a = Ext.getCmp('records_list_form_id').getValue( );
        var rec = Ext.getStore('FilterRecordsByForm').getAt(a);
        console.log(recStore);
    },

ほとんどの場合、いくつかのことを試しているだけですが、コンボボックスから選択した要素の ID を取得でき、それが私がいる場所です。

必要なのは、AJAX API (PHP/SQL バックエンド) を使用して新しいクエリを作成し、この ID に関連する情報をグリッドに入力するための ID です。私の場合、1:M の関係があるため、ID を渡すと、古いグリッドの場所にレンダリングしたい M レコードが期待されます。

ありがとう

レロン

4

2 に答える 2

1

filter()メソッドを使用します。フィルター処理に必要な情報を提供し、オブジェクトを保存すると、サーバーから更新された情報が自動的に要求されます (既に remoteFilter が構成されています)。

于 2012-04-22T11:52:51.027 に答える
0

Ext.Ajax() を見て、サーバー側にオンデマンドの ajax 呼び出しを行い、データをロードしてから、Store.loadData() などを使用してグリッドを再設定します。

于 2012-04-22T02:37:04.003 に答える