我之前使用的是Kendo-UI v2012.2.710
- 但是当我更新到Kendo-UI v2012.3.1114
时,我的代码停止了工作。我不太清楚是什么改变了,因为我的代码看起来很简单。任何人都可以对此有所了解吗?
回滚到以前版本以保持此功能正常工作不是一个选项,因为它可能会破坏其他功能。
<div id="gridTiming"></div>
<script>
var entries = [
{ "city":"Boston", "time":"10:14", datetime: "2012-08-28T10:14:00.000Z" },
{ "city":"Kyoto", "time":"23:14", datetime: "2012-08-28T23:14:00.000Z"},
{ "city":"La Paz", "time":"10:14", datetime: "2012-08-28T10:14:00.000Z"},
{ "city":"San Francisco", "time":"07:14", datetime: "2012-08-28T07:14:00.000Z"},
{ "city":"Salt Lake City", "time":"08:14", datetime: "2012-08-28T08:14:00.000Z"},
{ "city":"Salvador", "time":"11:14", datetime: "2012-08-28T11:14:00.000Z"},
{ "city":"Salzburg", "time":"16:14", datetime: "2012-08-28T16:14:00.000Z" },
{ "city":"San Diego", "time":"07:14", datetime: "2012-08-28T07:14:00.000Z" }
];
function timeEditor(container, options) {
$('<input data-text-field="' + options.field + '" data-value-field="' +
options.field + '" data-bind="value:' + options.field +
'" data-format="' + options.format + '"/>')
.appendTo(container)
.kendoTimePicker({});
}
function dateTimeEditor(container, options) {
console.log("options", options);
$('<input data-text-field="' + options.field + '" data-value-field="' +
options.field + '" data-bind="value:' + options.field +
'" data-format="' + options.format + '"/>')
.appendTo(container)
.kendoDateTimePicker({});
}
$("#gridTiming").kendoGrid({
dataSource: {
data: entries,
schema: {
parse: function (response) {
$.each(response, function (idx, elem) {
if (elem.time && typeof elem.time === "string") {
elem.time = kendo.parseDate(elem.time, "HH:mm");
}
if (elem.datetime && typeof elem.datetime === "string") {
elem.datetime = kendo.parseDate(elem.datetime, "yyyy-MM-ddTHH:mm:ss.fffZ");
}
});
return response;
}
}
},
columns: [
{ command: [ "edit" ] },
{ field:"city", title:"City" },
{ field:"time", title:"Time", format:"{0:HH:mm}", editor: timeEditor },
{ field:"datetime", title:"Date - Time", format:"{0:yyyy-MM-dd HH:mm}", editor: dateTimeEditor }
],
editable: "inline",
navigatable: true
});
</script>
编辑:以下一对jsFiddles演示了这个问题:
要查看此问题,请执行以下操作:
Troy Alford:两个版本都更新了底层网格的数据 - 但只有v2012.2.710
版本正确关闭了Dialog,并将Grid的单元格标记为已更改。
答案 0 :(得分:3)
我已经创建了2个jsFiddles用于测试你的问题 - 但是。Kendo-UI
的两个版本都适用于我而不会改变你的代码
编辑:添加了由@Emiliano Bartolome提供给OP的更新版本。这些链接是:
我应该注意,这些jsFiddles依赖于Kendo-UI
CDN和jQuery 1.8.2
来自CDN。我正在使用的链接是:
Kendo-UI v2012.2.710
:http://cdn.kendostatic.com/2012.2.710/js/kendo.all.min.js Kendo-UI v2012.3.1114
:http://cdn.kendostatic.com/2012.3.1114/js/kendo.all.min.js jQuery 1.8.2
:http://code.jquery.com/jquery-1.8.2.js 答案 1 :(得分:1)
神秘解决了!使用新版本时,我们必须在id
中定义schema.model
。
我已更新Version 2, using Kendo-UI v2012.3.1114
我在模型中所做的是将id
设置为city
,现在就可以了!
model:{
id:"city"
},