我在使用动态列创建网格时获得Uncaught SyntaxError: Unexpected number
。
对于参考我已经遵循jsbin并尝试将列标题Balance
更新为03/22/2016
。
http://jsbin.com/garifabuda/edit?html,js,output
请在javascript中进行后续更改,并在控制台中检查错误。
var data = [{
"Name": "daya",
"Role": "Developer",
"Dept": "Dev",
"Date": "\/Date(836438400000)\/",
"03/22/2016": 23 // Previously it was Balance
}, {
"Name": "siva",
"Role": "Developer",
"Dept": "Dev",
"Date": "\/Date(836438400000)\/",
"03/22/2016": 23 // Previously it was Balance
}, {
"Name": "sivadaya",
"Role": "Developer",
"Dept": "Dev",
"Date": "\/Date(836438400000)\/",
"03/22/2016": 23 // Previously it was Balance
}, {
"Name": "dayasiva",
"Role": "Developer",
"Dept": "Dev",
"Date": "\/Date(836438400000)\/",
"03/22/2016": 23 // Previously it was Balance
}];
任何人都可以为此提供任何解决方案。我希望列标题作为日期字符串。 任何帮助都将受到高度赞赏。
更新1
此处所有列都是动态生成的,因此可能不会只有" 03/22/2016"。它也可以是其他日期。
答案 0 :(得分:1)
最后,我做了一些解决方法,因为剑道不支持特殊字符(特别是/).
我所做的是,
d_
和X
来更改列名,并填充
它。所以现在我的列名就像下面的d_03X22X2016
之后在网格的数据绑定事件中添加了以下代码。
dataBound: function (e) {
var obj = $('.k-header .k-link');
for (var i = 0; i < obj.length; i++) {
obj[i].innerHTML = obj[i].innerHTML.replace('d_', '').replace('X', '/').replace('X', '/');
}
}
它会从视图中替换所有预定义的(d_,X)特殊字符,并按预期显示给我。 这不是完美的解决方案,而是一种解决这个问题的技巧。
答案 1 :(得分:0)
这是一个可能的解决方案:
http://jsbin.com/yivufoduwo/1/edit?html,js,output
我所做的只是在您的模型中添加了columns
集合,然后告诉网格将其用于您的列:
我更改了generateModel
函数以包含这段代码:
if (property === "Balance") {
columns.push({
field: property,
headerTemplate: "22/3/2016"
});
} else {
columns.push({
field: property,
headerTemplate: property
});
}
根据您的需要,将新的headerTemplate项添加到列中。这可以更改,以便您在此处显示其他内容,您可以为其提供传递给函数的选项。
然后在网格初始化中添加以下行:
columns:model.columns
通过尝试将日期用作字段名称,这会破坏不接受空格或特殊字符的列的命名系统。