在日期列$ className中获取错误

时间:2017-03-24 06:52:00

标签: excel date extjs combobox

我尝试导出Grid excel并使用Exporter来实现它, 我的网格在Fiddle

网格

Ext.application({
    name: 'Fiddle',

    launch: function () {
        Ext.create('Ext.data.Store', {
            storeId: 'simpsonsStore',
            fields: ['name', 'email', 'phone','date'],
            data: {
                'items': [{
                    'name': 'Arshad11111',
                    "email": "kahdkha@abc.com",
                    "phone": "6488646486",
                    "date":"2016-03-23"
                }, {
                    'name': 'Aesadasdasd',
                    "email": "asdsadasd@sdsc.com",
                    "phone": "6488646486",
                    "date":"2016-03-23"
                }, {
                    'name': 'gadjandna',
                    "email": "asdjf@ndfnsdos.com",
                    "phone": "6488646486",
                    "date":"2016-03-23"

                }, {
                    'name': 'asdasdasd',
                    "email": "asdasd@dfsdf.com",
                    "phone": "555-222-1254",
                    "date": "2016-03-23"
                }, ]
            },
            proxy: {
                type: 'memory',
                reader: {
                    type: 'json',
                    root: 'items'
                }
            },
        });

        Ext.create('Ext.grid.Panel', {
            title: 'Simpsons',
            store: Ext.data.StoreManager.lookup('simpsonsStore'),
            columns: [{
                text: 'Name',
                dataIndex: 'name'
            }, {
                text: 'Email',
                dataIndex: 'email',
                flex: 1
            }, {
                text: 'Phone',
                dataIndex: 'phone'
            },{
                text: 'Date',
                xtype: 'datecolumn',
                dataIndex: 'telecastdate',
                format: 'Y-m-d',
                flex: 1

            }],

            height: 300,
            width: 400,
            dockedItems: [{
                    xtype: 'toolbar',
                    docked: 'bottom',
                    items: [{
                        xtype: 'button',
                        flex: 1,
                        text: 'Download to Excel',
                        handler: function (b, e) {
                            b.up('grid').downloadExcelXml();
                        }
                    }]
                }

            ],
            renderTo: Ext.getBody()
        });
    }
});

它有一个xtype作为日期列的列,并且在下面的网格行到excel转换器,我得到这个Uncaught TypeError: Cannot read property '$className' of undefined错误,但是如果我删除那个日期列它完美地工作,那么我如何进行更改同样,

switch (fld.$className) {

                    case "Ext.data.field.Integer":
                        console.log('Here Im typing 11111' + fld.$className);
                        cellType.push("Number");
                        cellTypeClass.push("int");
                        break;
                    case "Ext.data.field.Number":
                        console.log('Here Im typing 2222' + fld.$className);
                        cellType.push("Number");
                        cellTypeClass.push("float");
                        break;
                    case "Ext.data.field.Boolean":
                        console.log('Here Im typing 33333' + fld.$className);
                        cellType.push("String");
                        cellTypeClass.push("");
                        break;
                    case "Ext.data.field.Date":
                        console.log('Here Im typing 4444' + fld.$className);
                        cellType.push("DateTime");
                        cellTypeClass.push("date");
                        break;
                    default:
                        console.log('Here Im typing 555555555' + fld.$className);
                        cellType.push("String");
                        cellTypeClass.push("");
                        break;
                    }
                }

提前致谢

1 个答案:

答案 0 :(得分:2)

日期列中有错误的dataIndex。 您定义的商店没有字段telecastdate,但date。 当您将telecastdate更改为date时,它就有效。

查看正在运行的fiddle