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 回答