Kendo ui 剑道ui网格列模板函数字段名

Kendo ui 剑道ui网格列模板函数字段名,kendo-ui,telerik,kendo-grid,kendo-template,Kendo Ui,Telerik,Kendo Grid,Kendo Template,我想了解一下,模板函数中的字段名是什么: { field: "country", template: function(e){ var tmp = ""; var guid = kendo.guid(); $.each( e.country, function( key, value ) { tmp += '<span class="xyz">'

我想了解一下,模板函数中的字段名是什么:

{ 
field: "country", 
template: function(e){
               var tmp  = "";
               var guid     = kendo.guid();
               $.each( e.country, function( key, value ) {
                  tmp += '<span class="xyz">' + value.text + '</span>';
               });
               return tmp;
          }, 
}
{
字段:“国家”,
模板:函数(e){
var tmp=“”;
var guid=kendo.guid();
$。每个(如国家、职能(键、值){
tmp+=''+value.text+'';
});
返回tmp;
}, 
}
样本:

我在模板中没有字段名“country:
函数(e)
。模板中的函数中只有字段数据。
是否有一种方法,如
kendo.guid()
,可以在函数中为示例指定字段名“country”。

看看这是否满足您的需要:

{
    field: "country",
    title: "Country",
    template: function(e, field = "country") {
        console.log("Field name:", field);
        console.log(e[field]);
        return e.country.reduce((prev, current) => prev + '<span class="k-button" style="line-height:1.25em; cursor:default;">' + current.text + '</span>', "");
    },
}
{
字段:“国家”,
标题:“国家”,
模板:功能(e,field=“country”){
日志(“字段名:”,字段);
console.log(e[field]);
返回e.country.reduce((上一个,当前)=>prev+''+current.text+''”;
},
}
您可以在代码段中看到如何使用此功能的示例


html{字体大小:14px;字体系列:Arial、Helvetica、sans serif;}
没有找到任何数据。是否要添加新项-'#:instance.input.val()#'?

添加新项目 函数getTemplate(e,字段名){ 如果(字段名==“国家”){ 返回e.country.reduce((上一个,当前)=>prev+''+current.text+''”; }否则{ 返回e[fieldName]; } } $(文档).ready(函数(){ 风险值数据=[ { “id”:“wpErpOs_1”, “name”:“Rolf”, 'country':[{'text':'Schweiz','id':'1'}], “flag”:false }, { “id”:“wpErpOs_2”, “姓名”:“汉斯”, “国家”:[ {'text':'Deutschland','id':'2'}, {'text':'Schweiz','id':'1'}, {'text':'Österreich','id':'3'} ], “flag”:false }, { “id”:“wpErpOs_3”, “名字”:“以斯帖”, 'country':[{'text':'Schweiz','id':'1'}], “flag”:false }, { “id”:“wpErpOs_4”, “姓名”:“丹妮拉”, 'country':[{'text':'Österreich','id':'3'}], “flag”:false } ]; var dataSource=new kendo.data.dataSource({ 运输:{ 读:功能(e){ e、 成功(数据); }, 更新:职能(e){ e、 成功(); }, 销毁:功能(e){ e、 成功(); }, 创建:函数(e){ e、 成功(); }, parameterMap:功能(选项、操作){ if(操作!=“读取”&&options.models){ 返回{models:kendo.stringify(options.models)}; } } }, 页面大小:20, 模式:{ 型号:{ id:“id”, 字段:{ id:{可编辑:false,可空:true}, 名称:{验证:{必需:true}}, 国家:{type:“object”}, 标志:{type:“boolean”} } } } }); $(“#网格”).kendoGrid({ 数据源:数据源, 工具栏:[“创建”], 栏目:[ { 字段:“名称”, 标题:“姓名”, 模板:函数(e){return getTemplate(e,“name”);} }, { 字段:“国家”, 标题:“国家”, 模板:函数(e){return getTemplate(e,“country”);} }, { 字段:“旗帜”, 标题:“国旗”, 编者:wpErpOs_GridBoolean,, 模板:函数(e){return getTemplate(e,“flag”);} }, ], 可编辑:“弹出”, }); }); 函数wpErpOs_GridBoolean(容器、选项){ var guid=kendo.guid(); $('')。附加到(容器); $('​;')。附于(容器); };
因为列是javascript对象,所以可以使用getter来构建模板。这允许您获取对象中其他属性的值(例如字段)。()


非常感谢你,这对我来说是一个完美的解决方案。我找了好几天没有任何解决办法。谢谢你约翰给了我这个很好的解决办法
{
  field: "country",
  title: "Country",
  get template() {
      var fieldName = this.field;
      return function(e) {
        var tmp = "";
        var guid = kendo.guid();
        $.each(e[fieldName], function(key, value) {
            tmp += '<span class="k-button" style="line-height:1.25em; cursor:default;">' + value.text + '</span>';
        });
        return tmp;
      }
  },
}
{
  field: "Date",
  get template() {
    return "# if (" + this.field + ") { # #= kendo.toString(kendo.parseDate(" + this.field + ",'yyyy-MM-dd'), 'MM/dd/yyyy') # # } #"
  }
}