extjs - 显示来自两个不同商店的网格中的记录?

时间:2011-04-20 08:31:43

标签: extjs

嗨,我有一个网格,我有两个商店,我想在同一网格中显示商店数据是否有办法做到这一点...请帮助

3 个答案:

答案 0 :(得分:1)

你不能(没有一些粗糙的黑客)在网格中显示两个商店。

你可以做的是建立一个第三个商店,它监听两个子商店的add / datachanged / update / remove事件。看看here,了解您需要支持的内容。

答案 1 :(得分:0)

例如,第一个数据col来自Store 1,而来自Store 2的数据来自cols 2和3.如果“其他”列只是'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}
];

答案 2 :(得分:0)

你使用的渲染器越多,渲染的速度越慢,因为它做了很多,想想你有多少渲染器.... 10列,100行...... 10 X 100 = 1,000渲染器。

考虑如何解决问题然后处理你的问题。