首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用值的动态Kendo UI Grid可编辑日期时间列

不使用值的动态Kendo UI Grid可编辑日期时间列
EN

Stack Overflow用户
提问于 2019-05-13 13:29:38
回答 2查看 2K关注 0票数 2

我有一个kendo用户界面网格,它可以在一个列上进行在线编辑。在编辑时,该列应该使用数据报警器作为输入。

但是,在设置datepicker上的值,然后返回到同一行/列后,日期将不会显示在datepicker输入中。

我创建了一个Dojo来展示我的意思:https://dojo.telerik.com/eJEmoVEv/4

为了更好地解释这个问题,我要做一个简短的介绍:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-14 08:10:17

在@DontVoteMeDown的帮助下,我终于找到了答案。数据报警器期望注释字段为日期类型,因此添加一个kendo.parse,然后重置注释字段解决了这个问题。

请参阅更新后的kendo:https://dojo.telerik.com/eJEmoVEv/4

代码语言:javascript
运行
复制
var dateTimeComment = kendo.parseDate(options.model.Comment);
options.model.Comment = dateTimeComment;
票数 2
EN

Stack Overflow用户

发布于 2019-05-13 14:39:49

处理剑道上的绑定总是很棘手的。我已经用一些更改更新了您的演示

  1. 编辑: 当您使用data-bind时,您不需要处理小部件的状态。Kendo应该自己处理,但是您需要告诉kendo使用kendo.bind(element, model)(文档)来处理这个问题。因此,您不需要设置data-value属性。 函数commentEditor(容器,选项){ var datePicker = $('');datePicker.appendTo(容器);kendo.bind(datePicker,options.model);}
  2. Comment字段类型: 为了使kendo知道如何将Comment字段值作为日期处理,并将其正确设置为小部件,需要在它的模型定义中设置正确的数据类型: 注释:{ type:"date",可编辑: true }
  3. 模板: 模板的一个小补丁: 模板:函数(dataItem) { if (dataItem.Comment != "") { let date = kendo.parseDate (dataItem.Comment );if (date) {返回kendo.toString(date,"dd/MM/yyyy");}返回(dataItem.Comment而行行);} 我通过检查Comment结果来确保parseDate内容是一个有效的日期。如果无效,则转到另一个条件,在该条件下,它将验证Comment是否不是nullundefined等,如果是,则打印空字符串。

希望能帮上忙。

更新

不确定原因,但似乎kendo将选定的值作为字符串保存到绑定属性中。我已将此处理程序添加到小部件的change事件中,该事件似乎有效:

代码语言:javascript
运行
复制
datePicker.data("kendoDatePicker").bind("change", function(e) {
    let model = this,
        widget = e.sender;

    model.Comment = widget.value();
}.bind(options.model));

更新演示

这将强制Comment属性为Date类型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56113415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档