为kendo网格列模板调用外部html模板

时间:2014-01-17 18:19:11

标签: kendo-ui kendo-grid

我一直在努力让它发挥作用..

基本上我正在为kendo网格动态分配列和模板。每列可以是任何类型。如果类型是'address'类型,那么我将html模板分配给该列以分割地址字符串并以一种很好的方式显示。

我这样做是通过创建可能的列类型及其相应模板的映射。问题在于“地址”地图。

 uiTemplateMap["date"] = "#= kendo.toString(kendo.parseDate(" + fieldName + "), 'MM/dd/yyyy') #";
 uiTemplateMap["address"] = eval("kendo.template($('\\#address-template').html())");

'address-template'定义为

 <script id="address-template" type="text/x-kendo-template">
    # var addr =  ${addresses} ; #
    # var splitaddr = addr.split(','); #
    # for (int i=0; i < splitaddr.length(); i++) { #
        <i> #= splitaddr[i] # </i>
    # } #
 </script>

我收到了无效的模板异常。我有两个问题。

  1. 如何为javascript变量指定列值? $ {addresses}分配似乎不起作用。
  2. 我不想硬编码模板中的“地址”列。我可以将列名或值传递给模板,如$('#address-template')。html(columnName)??
  3. 任何帮助都将受到高度赞赏,谢谢

1 个答案:

答案 0 :(得分:2)

您可以访问data[columnName]中的列值,其中columnName是字段的名称(字符串),或者,因为模板函数使用with块,只需在{{ 1}},所以你可以像这样定义一个模板生成器:

columnName

demo

如果要使用外部模板,则可能必须对名称进行硬编码(因为当前列的属性名称未传递给模板),除非您要修改Kendo UI源代码。