我尝试导出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;
}
}
提前致谢
答案 0 :(得分:2)
日期列中有错误的dataIndex
。
您定义的商店没有字段telecastdate
,但date
。
当您将telecastdate
更改为date
时,它就有效。
查看正在运行的fiddle。