无法让RowExpander在Ext JS中工作

时间:2013-08-13 18:17:22

标签: extjs grid panel

我已经在互联网上搜索了一个星期,试图找出为什么我不能让一个简单的rowexpander工作。我相信我已经尝试了一切。

这是我的代码:

Ext.define('AM.view.metadata.List' ,{
    extend: 'Ext.grid.Panel',
    alias: 'widget.metadatalist',
    title: '<center>Results</center>',
    store: 'Metadata', 
    requires: ['Ext.*'],
    collapsible: true,
    dockedItems: [{
        xtype: 'toolbar',
        dock: 'bottom',
        items: [
            { xtype: 'tbtext',  text: 'Loading...', itemId: 'recordNumberItem'  },
            '->',
            { text: 'Print', itemId: 'print' },
            '-',
            { text: 'Export', itemId: 'export' }
        ]
    }],
    initComponent: function() {
        this.columns = [
            {header: 'Technical Name',  dataIndex: 'TECH_NAME', flex: 4, tdCls: 'grid_cell'},
            {header: 'Privacy', dataIndex: 'PRIVACY_INDICATOR', flex: 3, tdCls: 'grid_cell'}
        ];

        this.callParent(arguments); //Calls the parent method of the current method in order to override 

        var store = this.getStore(); //Retrieving number of records returned
            textItem = this.down('#recordNumberItem');
            textItem.setText('Number of records: ' + store.getCount());

            var val = Ext.getCmp('criteria_1_input').getValue();
            store.filter('KBE_ID', val); 

    },

    plugins: [{
        ptype: 'rowexpander',
        id: 'rowexpangder',
            rowBodyTpl : [
                '<p>Name <b>{KBE_ID}</b></p>'
            ]
       }]
});

在Firefox(使用Firebug)中,当我尝试将插件放到网格上时,我的整个应用程序都会中断。在IE9中,它告诉我:

`SCRIPT5007: Unable to get value of the property 'substring': object is null or undefined` 

有几点需要注意: - 我没有设置Web服务器(即Tomcat) - 我正在使用4.1.1版 - 我在我的app.js

中使用'xtype:'metadalist''创建了这个视图

非常感谢任何想法,谢谢!

1 个答案:

答案 0 :(得分:0)

是否加载了Ext.grid.plugin.RowExpanderView类?

不确定通配符的工作原理,但您应该尝试使用完全相同的类:

//...    
requires: ['Ext.*', 'Ext.grid.plugin.RowExpanderView'],
//...

修改:此外,您应该使用pluginId代替id来插件。