2012-04-21 15 views
0

私はメイングリッドのためにあまりにも多くのrecords.The店を持っているため、リモートストアとリモートの改ページを使用してグリッドがあるしている:ExtJSの4

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個のレコードがあると思います。

おかげ

Leron

答えて

1

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

0
あなたのデータをロードするために、サーバー側へのオンデマンドAJAX呼び出しを行い、その後、Store.loadData()か何かなどを使用するExt.Ajax()で

ルックグリッドを再配置すること。