【问题标题】:jQuery Kendo Grid calling a function from templatejQuery Kendo Grid 从模板调用函数
【发布时间】:2022-01-07 12:43:47
【问题描述】:

背景:我正在尝试在一个网格上工作,其中一列可以根据网格中的列值具有不同的编辑器。我在 Telerik 网站上找到了一个有效的 example。效果很好!

问题: 我喜欢将 html 文件中的 html 代码与 js 文件中的 jquery 代码分开。一旦我分离出这样的代码,我就会收到一条错误消息,上面写着“未定义自定义模板”。 customTemplate 是一个从 editor 字段下的 template 调用的函数。我还创建了一个 JsFiddle 我的代码在本地的样子,我似乎遇到了同样的错误。

我认为问题在于我调用 customTemplate 函数的模板属性。我尝试将双引号换成单引号,但似乎也不起作用。

下面是 grid 和 customTemplate 函数是如何定义的:

   $("#grid").kendoGrid({
      dataSource: dataSource,
      columns: [
        { field: "id" , title: "ID" },
        { field:"type" , title: "Type" },
        { field: "editor",
          title: "Editor",
           template: "#=customTemplate(data.type,data.editor)#",
          editor: chooseEditor
        }],
      editable: true
    });
  });

 function customTemplate(type,value) {
    if (value == null)
      return "";

    switch (type) {
      case "date":
        return kendo.toString(kendo.parseDate(value), 'yyyy/MM/dd');
      default:
        return value;
    }
  }

【问题讨论】:

    标签: javascript jquery kendo-ui kendo-grid


    【解决方案1】:

    使用函数而不是模板字符串来调用你的函数:

    {
      field: 'editor',
      title: 'Editor',
      template: function(dataItem) {
        return customTemplate(dataItem.type, dataItem.editor);
      },
      editor: chooseEditor
    }
    

    小提琴:https://dojo.telerik.com/AluziYAc

    【讨论】:

    • 谢谢!就像魅力一样!
    • 把这段代码放到html文件中是不是应该只用模板字符串来调用我们的函数?
    • @HereToLearn_ - 通常我使用模板字符串的唯一时间是我想做简单的格式化。例如日期格式(当字段被定义为数据源架构中的日期时)可以使用:template: '{0: yyyy/mm/dd}' 编辑 - 实际上,这是格式选项卡。想想看,我想我从来没有在网格列中使用过模板字符串,我一直使用函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多