You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kendo UI Grid列模板函数中获取对应字段名称?

如何在Kendo UI Grid列模板函数中获取字段名

其实Kendo UI的列模板函数本身不会直接把字段名作为参数传入,但我们可以通过闭包或者显式传递字段名的方式轻松实现这个需求,下面给你两种实用的方案:

方案一:利用闭包绑定字段名

在定义列配置的时候,我们可以把字段名作为变量传入模板函数的闭包中,这样模板函数内部就能直接访问到这个字段名了:

{ 
  field: "country", 
  template: (function(fieldName) {
    return function(e){ 
      var tmp = ""; 
      var guid = kendo.guid(); 
      // 这里就能直接拿到字段名fieldName了
      console.log("当前字段名:", fieldName);
      $.each( e[fieldName], function( key, value ) { 
        tmp += '<span class="xyz">' + value.text + '</span>'; 
      }); 
      return tmp; 
    };
  })("country"), // 这里传入对应的字段名
}

这种方式的好处是模板逻辑可以复用,如果你有多个列需要类似渲染逻辑,只需要修改传入的字段名即可。

方案二:显式引用列配置对象

如果你希望更灵活地获取列的完整配置(不止字段名),可以先单独定义列配置对象,再在模板函数中直接引用它的字段属性:

// 先定义列配置对象
var countryColumn = { 
  field: "country", 
  template: function(e){ 
    var tmp = ""; 
    var guid = kendo.guid(); 
    // 这里直接通过列对象获取字段名
    console.log("当前字段名:", countryColumn.field);
    $.each( e[countryColumn.field], function( key, value ) { 
      tmp += '<span class="xyz">' + value.text + '</span>'; 
    }); 
    return tmp; 
  }, 
};

// 将列对象加入Grid的配置中
$("#grid").kendoGrid({
  columns: [countryColumn, /* 其他列 */],
  // 其他Grid配置项...
});

补充说明

Kendo UI并没有像kendo.guid()那样的内置方法直接在模板函数中获取字段名——毕竟模板函数的设计初衷是专注于数据渲染,而非列元数据的访问。但通过上面的闭包或显式引用的方式,完全可以满足你的需求。

内容的提问来源于stack exchange,提问作者Severin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:26:35