2013-06-22 65 views
2

我有一個自定義渲染一個網格,請參見下面EXTJS過濾HasOne協會

{     text: 'Last Name', 
        dataIndex:'LastName', 
        renderer: function(v, m, r) { 
         return r.getDemographic().get('LastName'); 
        }   
       } 

我希望能夠過濾掉的財產,當用戶類型,我有以下

{ 
        fieldLabel: 'Last Name', 
        emptyText: 'Last Name', 
        listeners: { 
         change: function (field, newValue, oldValue, options) { 

          var grid = Ext.getCmp('Grid'); 
          grid.store.clearFilter(); 


          grid.store.filter([ 
           { property: "Demographic.LastName", value: newValue } 
          ]); 
         } 
        } 



       } 

問題是,該屬性不是它是什麼,我無法找到我需要綁定到屬性被稱爲。該模型是以下

Ext.define('Test', { 
    extend: 'Ext.data.Model', 

    fields: [ 
     'id' 
    ], 


     { type: 'hasOne', model: 'Demographic', associationKey: 'Demographic', getterName: 'getDemographic' }] 

}); 

回答

0

既然是hasOne關聯中,你可以嘗試添加附加字段映射到Demographic.LastName到可用於直接在測試模型篩選您的測試模型。

Ext.define('Test', { 
    extend: 'Ext.data.Model', 

    fields: [ 
     'id', 
     {name: 'MappedLastName', mapping: 'Demographic.LastName'} 
    ], 

    { type: 'hasOne', model: 'Demographic', associationKey: 'Demographic', getterName: 'getDemographic' }] 

}); 

然後你就可以用這個過濾

grid.store.filter([ 
     { property: "MappedLastName", value: newValue } 
]);