如何连接数据表LWC的列?

问题描述 投票:0回答:0

我有一张联系人表。表必须包含 idName 和 Name 列。字段 idName 必须显示格式为 003XXXXXXXXXXXXXXXName 的记录,作为 Id 003XXXXXXXXXXXXXXX 和字符串名称的串联。这是我的代码:

html

<template>
   <lightning-card>
      <lightning-datatable
               key-field="Id"
               data={contacts}
               columns={columns}
               hide-checkbox-column="true"
               show-row-number-column="true">
      </lightning-datatable>
   </lightning-card>
</template>

js

import { LightningElement, track, wire } from 'lwc';
import getContacts from '@salesforce/apex/ContactController.getContacts';
export default class ContactsTable extends LightningElement {
   @track columns = [
      { label: 'Name', fieldName:'recordLink', type: 'url', 
      typeAttributes: {label: {fieldName: "ContactName"}, tooltip: "Name", linkify: true} },
      { label: 'Id', fieldName: 'Id'},
      { label: 'Name', fieldName: 'Name'}
   ];
   @track contacts;
   @wire(getContacts)
   wiredContacts(value) {
      const {error, data} = value;
      if (data) {
         let contactData = JSON.parse(JSON.stringify(data));  
         contactData.forEach(record => {
            record.recordLink = "/" + record.Id;  
            record.ContactName = record.Name;
         });  
         this.contacts = contactData;
      } else if (error) {
         this.error = error;
      }
   }
}

巅峰班

public with sharing class ContactController {
    public ContactController() {}
    @AuraEnabled(cacheable=true)
    public static List<Contact> getContacts(){
       return[ SELECT Id, Name
       FROM Contact
       ORDER BY Name
       ];
    }
}

谢谢。

我尝试用这个方法,但没有成功

concatenateCols() {
      this.columns = [...this.columns, { label: 'idName', fieldName: 'idName' }];
      this.contacts = this.contacts.map(item => {
         return { ...item, idName: `${item.Id} - ${item.Name}` };
      });
  }
javascript datatable contacts apex lwc
© www.soinside.com 2019 - 2024. All rights reserved.