Jquery 剑道UI网格版本“;v2012.3.1114”;不';t支持日期/时间编辑功能
我以前使用的是Jquery 剑道UI网格版本“;v2012.3.1114”;不';t支持日期/时间编辑功能,jquery,datetime,kendo-ui,Jquery,Datetime,Kendo Ui,我以前使用的是Kendo UI v2012.2.710——但当我更新到Kendo UI v2012.3.1114时,我的代码停止工作。我不太确定是什么改变了,因为我的代码看起来很简单。有人能解释一下吗 为了保持此功能正常工作而回滚到以前的版本不是一个选项,因为它可能会破坏其他功能 <div id="gridTiming"></div> <script> var entries = [ { "city":"Boston", "time"
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>
变量项=[
{“城市”:“波士顿”,“时间”:“10:14”,日期时间:“2012-08-28810:14:00.000Z”},
{“城市”:“京都”,“时间”:“23:14”,日期时间:“2012-08-28223:14:00.000Z”},
{“城市”:“拉巴斯”,“时间”:“10:14”,日期时间:“2012-08-28 10:14:00.000Z”},
{“城市”:“旧金山”,“时间”:“07:14”,日期时间:“2012-08-28T07:14:00.000Z”},
{“城市”:“盐湖城”,“时间”:“08:14”,日期时间:“2012-08-28 08:14:00.000Z”},
{“城市”:“萨尔瓦多”,“时间”:“11:14”,日期时间:“2012-08-28811:14:00.000Z”},
{“城市”:“萨尔茨堡”,“时间”:“16:14”,日期时间:“2012-08-28:16:14:00.000Z”},
{“城市”:“圣地亚哥”,“时间”:“07:14”,日期时间:“2012-08-28T07:14:00.000Z”}
];
函数时间编辑器(容器、选项){
$('')
.appendTo(容器)
.kendoTimePicker({});
}
函数dateTimeEditor(容器、选项){
日志(“选项”,选项);
$('')
.appendTo(容器)
.kendoDateTimePicker({});
}
$(“#网格计时”).kendoGrid({
数据源:{
数据:条目,
模式:{
解析:函数(响应){
$.each(响应、函数(idx、元素){
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”);
}
});
返回响应;
}
}
},
栏目:[
{命令:[“编辑”]},
{字段:“城市”,标题:“城市”},
{字段:“时间”,标题:“时间”,格式:{0:HH:mm},编辑器:timeEditor},
{字段:“日期时间”,标题:“日期-时间”,格式:“{0:yyyy-MM-dd HH:MM}”,编辑器:dateTimeEditor}
],
可编辑:“内联”,
可导航:正确
});
EDIT:以下一对JSFIDLE演示了问题:
:两个版本都会更新基础网格的数据-但只有
v2012.2.710
版本会正确关闭对话框,并将网格的单元格标记为已更改。我已创建了2个JSFIDLE用于测试您的问题-但是剑道UI
的两个版本都适用于我,不会更改您的代码
kendoui
CDN和通过CDN的jquery1.8.2
。我使用的链接有:
- 剑道UI v2012.2.710:
- 剑道UI v2012.3.1114:
:jQuery 1.8.2
剑道UI的两个版本都可以在不修改代码的情况下为我工作
编辑:将@Emiliano Bartolome提供的更新版本添加到OP中。这些链接包括:
我应该注意到,这些jsfiddle依赖于kendoui
CDN和通过CDN的jquery1.8.2
。我使用的链接有:
- 剑道UI v2012.2.710
:
jQuery 1.8.2
:谜团解开了!对于新版本,我们必须在
schema.model
中定义id
我已经更新了
我在模型中所做的是将id
设置为city
,现在它可以工作了
model:{
id:"city"
},
谜团解开了!对于新版本,我们必须在
schema.model
中定义id
我已经更新了
我在模型中所做的是将id
设置为city
,现在它可以工作了
model:{
id:"city"
},
我更新了您的一些问题,以帮助您获得更多的关注,并使代码更具可读性。什么停止了工作?控制台中是否存在javascript错误?提供有关该问题的更多信息。我更新了您的一些问题,以帮助您获得更多的关注,并使代码更具可读性。什么停止了工作?控制台中是否存在javascript错误?提供更多关于这个问题的信息。我已经更新了你小提琴中的代码,以实际显示“问题”。如果在剑道2012.2.710中按
edit
并按update
,则弹出窗口将关闭,而在剑道2012.3.1114中保持打开状态。事实上,在这两种情况下,值都会更新,但存在不同的行为。这是一个“错误”还是“功能”?很好-用小提琴更新OP的帖子,以澄清。是的,@EmilianoBartolome我也有同样的问题,即使我不能在更新功能上做任何操作。我已经发布了一个不同的解决方案。检查它是否适用于您,如果适用,请接受它作为答案。我已更新了您小提琴中的代码,以实际显示“问题”。如果在剑道2012.2.710中按edit
并按update
,则弹出窗口将关闭,而在剑道2012.3.1114中保持打开状态。事实是