ExtJS:dataIndex属性不起作用

时间:2013-09-10 20:51:54

标签: extjs extjs4

我的简化商店:

Ext.define('PT.store.DealTree', {
    extend: 'Ext.data.TreeStore',
    proxy: {
        type: 'rest',
        url:  '/dealTree',
        reader: { type: 'json', root: 'children', successProperty: 'success' },
    },
    root: { name: 'children', expanded: true }
})

我的简化网格:

Ext.define('PT.view.deal.DealSelectionGrid', {
    extend: 'Ext.tree.Panel',
    alias: 'widget.dealSelectionGrid',
    rootVisible: false,
    fields: ['text', 'date'],

    store: 'DealTree',
    columns: [
        { xtype: 'treecolumn', text: 'Deal', dataIndex: 'text' },
        { xtype: 'datecolumn', text: 'Date', dataIndex: 'date' }
    ]   
});

简化回复的示例:

[ { text: 'aNode',
    id: 522f7dd2323544c424000034,
    leaf: true,
    date: '2013/10/10' } ]

“日期”列中没有显示任何内容,但textleafid完全正常。我显然遗漏了一些东西。目前,我没有使用模型,因为每个级别都是不同的模型,默认情况下不支持 - 因此我让ExtJS为我添加所有NodeInterface装饰。

1 个答案:

答案 0 :(得分:2)

fields配置进入商店,而不是树组件。

例如,您的代码显示了此商店的日期:

Ext.define('PT.store.DealTree', {
    extend: 'Ext.data.TreeStore',
    proxy: {
        type: 'rest',
        url:  '/dealTree',
        reader: { type: 'json', root: 'children', successProperty: 'success' }
    },

    // fields option here!
    fields: ['text', 'date'],

    root: {
        name: 'children',
        expanded: true,
        children: [{
            text: 'aNode',
            id: '522f7dd2323544c424000034',
            leaf: true,
            date: '2013/10/10'
        }]
    }
});