如何将表列字段结合到Kendo Grid中的单列



我想将表列字段结合到Kendo-Grid中的单列

  { field: 'name', title: 'Name' },
  { field: 'address', title: 'Address'},
  { field: 'phoneNumber', title: 'Phone Number' },
  { field: 'remarks', title: 'Remarks' },
  { command: ['edit', 'destroy'] }];

字段:'address'是一个对象。

地址:{blockno:'xx',城市:"新加坡",国家:"新加坡",floorno:'xx',id:'xx',ZipCode:'xxxxx',街头名称:'xx',unitno:'xx',}

所以,我需要组合以在Kendo-Grid中的单列中显示。

例如。blk-xx,#xx-xx,新加坡,xxxxx->在单列中。

另一种方法是使用外部模板或功能也可以执行此操作(这是我的首选解决方案,因为它更容易维护)

我已经改编了我在先前答案上使用的演示,以突出显示可能使用的方法。

模板地址对象

我所做的只是 extract将模板输出到这样的函数中:

 function generateAddress(data) {
   var retString = '';
   if (data !== undefined && data !== 'undefined' && data !== null) {
     retString += '<p><strong>Block No:</strong> ' + data.blockNo +
       '<br/><strong>Street Name:</strong>' + data.streetName +
       '<br/><strong>Floor No:</strong>' + data.floorNo +
       '<br/><strong>City:</strong>' + data.city +
       '<br/><strong>Zip Code::</strong>' + data.zipCode +
       '<br/><strong>Country:</strong>' + data.country + '</p>';
   } else {
     retString = '<p>N/A</p>';
   }

   return retString;
 }

然后将列中的模板签名更改为类似的内容:

{field: "address", width:"200px", title:"Address",
  template:"#=generateAddress(data.address)#" }

这样,我们只是将对象传递给该函数,并且可以在功能中执行所需的任何更改,注意:,如果您在代码中的许多位置都使用了此功能。

它还执行一个简单的检查,以查看该项目是否存在,如果不存在,则将其放置在其位置。

我还从external模板加载时也添加了供您查看。

我个人更喜欢第一个选项,但是这些是您将来可以研究的一些替代方法。

nb:很高兴您的同事设法帮助您解决了这个问题。

我得到了同事的正确答案:)

答案是:

var schema = [
      { field: 'name', title: 'Name' },
      { field: 'address', title: 'Address', template: 'BLK-#=address.blockNo+", "+address.streetName+", \#"+address.floorNo+"-"+address.unitNo+ ", S-"+address.pinCode+", "+address.city+", "+address.country#'},
      { field: 'billingAddress', title: 'Billing Address', template: 'BLK-#=billingAddress.blockNo+", "+billingAddress.streetName+", \#"+billingAddress.floorNo+"-"+billingAddress.unitNo+ ", S-"+billingAddress.pinCode+", "+billingAddress.city+", "+billingAddress.country#'},
      { field: 'phoneNo', title: 'Phone Number'},
      { field: 'fax', title: 'Fax'},
      { field: 'email', title: 'Email'},
      { field: 'contactPerson', title: 'Contact Person'},
      { field: 'remarks', title: 'Remarks' },
      { command: ['edit', 'destroy'] }];

eg:blk-xx,xx街,#xx-xx,s-xxxxx,xxx,xxx

非常感谢您,..我只是为知识共享添加答案..:)

最新更新