0

我对剑道网格自定义编辑器有疑问。当我单击剑道网格上的编辑按钮时,我想使用 dateTimePicker 作为我的编辑器。但是当我尝试使用 dateTimePicker 自定义我的网格时,总是会出现错误:

Uncaught TypeError: e.indexOf is not a function ---------- kendo.custom.min.js:1 

这是简单的源代码:

  var data = [
            {"id":1, "dateTime": 1420947900000},
            {"id":2, "dateTime": 1421034300000},
            {"id":3, "dateTime": 1421036100000},
            ];
$("#grid").kendoGrid({
    selectable: true,
    editable: "inline",
    columns: [
        { 
            field: "dateTime", 
            title: "<center>Date Time</center>", 
            width: "200px",
            format: "{0:MM/dd/yyyy hh:mm}",
            template: "#= kendo.toString(new Date(parseInt(dateTime)), 'MM/dd/yyyy hh:mm') #",
            editor: dateTimeEditor2
        },
        { command: ["edit", "destroy"], title: "&nbsp;", width: "170px" }
    ],
    dataSource: {
        transport: {
            read: function(e) {
                e.success(data);
            },
            update: function(e) {
                //my update Function
        alert(e.dateTime);
            },
            autosync: true
        },
        schema: {
             model: {
                 id: "id",
                 fields: {
                     dateTime: { type: "datetime" },
                 }
             }
        }
    }
});
function dateTimeEditor2(container, options) {
    $('<input data-text-field="' + options.field + '" data-value-field="' + options.field 
            + '" data-bind="value:' + options.field + '" />')
            .appendTo(container)
            .kendoDateTimePicker({
                format:"MM/dd/yyyy hh:mm",
                value: new Date(options.model.dateTime)
            });
}

或者您可以在此链接上查看

我也已经在许多不同的来源上检查过它,例如:

  1. 参考1
  2. 参考文献 2
4

1 回答 1

1

您的“日期时间”字段是数字,但您使用“日期时间”类型的网格选项。在编辑器功能中,在自定义输入上使用“data-bind”属性会阻止 kendoUI 代码,因为它需要某种我认为的日期文本。

我将您的代码更新字段类型更改为数字并删除了输入属性。错误消失了。但是,当编辑器值更改时,您需要使用自定义事件来实现 DateTimePicker 以更新网格 dataItem 的数值。或者,我猜在您的示例中单击“更新”按钮时,可能通过将日期时间值解析为整数并设置网格数据项..

http://dojo.telerik.com/ecICE

额外说明:在将其绑定到网格之前,我还会考虑操作我的数据源数组以将这些数值更改为 JS DateTime 值。那可能是更简单的解决方案。

--

于 2016-08-08T07:52:46.480 回答