Antecedentes: estoy intentando trabajar en una cuadrícula donde una columna puede tener un editor diferente según el valor de la columna en una cuadrícula. Encontré un ejemplo funcional en el sitio de Telerik. ¡Funciona muy bien!
Problema: me gusta separar el código html en el archivo html frente al código jquery en el archivo js. Una vez que separé el código de esta manera, aparece un error que dice "La plantilla personalizada no está definida". customTemplate es una función que se llama desde la plantilla en el editor de campos. También creé un JsFiddle de cómo se ve mi código localmente donde parece que recibo el mismo error.
Creo que el problema está relacionado con el atributo de la plantilla donde llamo a la función customTemplate. Intenté cambiar las comillas dobles por comillas simples y tampoco pareció funcionar.
A continuación se muestra cómo se definen las funciones grid y 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; } }Use una función para llamar a su función en lugar de una cadena de plantilla:
{ field: 'editor', title: 'Editor', template: function(dataItem) { return customTemplate(dataItem.type, dataItem.editor); }, editor: chooseEditor }