我正在使用Javascript中的此调用从Kendo网格中提取所有数据:
var data = JSON.stringify($(".k-grid").data("kendoGrid").dataSource.data())
它为这些记录返回C#类中的所有属性。我在Kendo演示中没有显示三个属性,但是将它们返回到此调用中(并随后发送到“导出为CSV”调用中)。
如何从此数据调用中排除这些列?
编辑:
在@DontVoteMeDown的示例之后,我尝试使用此功能:
function removeKeys(data) {
let excludedKeys = ['InvoiceId', 'IsOk', 'ErrorMessage'],
newData = data.map((item) => {
let newObj = {};
Object.keys(item).forEach(key => {
if (excludedKeys.indexOf(key) == -1) {
newObj[key] = item[key];
}
});
return newObj;
});
}
但是,在控制台调试器中,我得到了一个错误。
当我这样调用序列时,会得到一个未定义的“数据”:
var tableData = $(".k-grid").data("kendoGrid").dataSource.data();
var dataChop = removeKeys(tableData);
var data = JSON.stringify(dataChop);
当我按此顺序调用时,出现错误消息“ data.map不是函数”:
var tableData = $(".k-grid").data("kendoGrid").dataSource.data();
var dataFull = JSON.stringify(tableData);
var data = removeKeys(dataFull);
我应该如何调用此映射函数?
答案 0 :(得分:0)
@ZorgoZ建议的简单实现:
let data = [{
a: 1,
b: 2,
c: 3
}, {
a: 4,
b: 5,
c: 6
}];
let excludedKeys = ['c'],
newData = data.map((item) => {
let newObj = {};
Object.keys(item).forEach(key => {
if (excludedKeys.indexOf(key) == -1) {
newObj[key] = item[key];
}
});
return newObj;
});
console.log(newData);
成为数据您的dataSource.data()
。