2011-04-20 62 views
1

嗨,我有一個網格,我有兩個商店,我想顯示在同一個網格中的商店數據是否有辦法做到這一點...幫助請extjs顯示來自兩個不同商店的網格記錄?

+0

你是不是說你有兩個相同結構的商店?這是一件浪費的事情。假設U使用Extjs 3。*。*看看這個:http://stackoverflow.com/questions/3405437/how-to-add-records-in-json-store。這告訴你如何添加新的記錄.. – 2011-04-20 10:13:27

+0

絕對好奇你爲什麼使用兩家商店。 – Keylan 2011-04-20 16:54:40

回答

1

你不能(沒有一些粗糙的黑客攻擊)在網格中顯示兩個商店。

你可以做的是做第三個商店,它偵聽兩個子商店的add/datachanged/update/remove事件。看看你需要支持的東西here

0

例如,第一個數據列來自Store 1,而來自Store 2的數據形成第2和第3列。如果'other'列只是'lookup',則可以使用在第二個存儲區中查找數據的呈現器'數據,例如:

var store1 = new Ext.data.Store({ 
    ..., 
    fields: ['field1', 'field2'] 
}); 

var store2 = new Ext.data.Store({ 
    ... 
    id: 'field2', 
    fields: ['field2', 'fieldA', 'fieldB'] 
}); 

var renderA = function(value) { 
    var rec = store2.getById(value); 
    return rec ? rec.get('fieldA') : ''; 
} 
var renderB = function(value) { 
    var rec = store2.getById(value); 
    return rec ? rec.get('fieldB') : ''; 
} 

var columns = [ 
    {header: 'Field 1', dataIndex: 'field1'}, 
    {header: 'Field A', dataIndex: 'field2', renderer: renderA}, 
    {header: 'Field B', dataIndex: 'field2', renderer: renderB} 
]; 
0

使用,因爲它做了很多的事情慢將使渲染,多想,你有多少個渲染器有那麼.... 10列,100列... 10 X 100 = 1,000渲染器。

想想如何解決您的問題,然後處理您的問題。

相關問題