Salesforce LWC 中的自定义选择列表字段未在保存方法中提供更改的新值

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

我使用 Salesforce LWC 成功实施了自定义选项列表字段功能。表中的所有值都正确加载。但是当尝试在下拉更改后保存记录时,更改的值无法通过 event.detail.draftValues 检索。

LWC html 文件如下,

<template>
  <c-custom-nationality-pick-list 
  key-field="Id" 
  data={data} 
  show-row-number-column 
  onsave={handleSave}
  hide-checkbox-column 
  columns={columns}
  onrowaction={handleRowAction}
  >
  </c-custom-nationality-pick-list >
</template>

我的组件代码如下保存,

  handleSave(event){
  const updateFields  = event.detail.draftValues; // gives values for all standard fields  , but not custom field changed value
  console.log(updateFields);
  }

自定义字段在 .js 文件中定义如下,

const COLUMNS = [

{ 
  name : 'Nationality' ,
  label : 'Nationality',
  fieldName: 'nationality__c',
  type: 'nationalityPicklist',
  placeholder : 'Choose Nationality',
  typeAttributes: {
    
    value: { fieldName: 'nationality__c' },
    options: { fieldName: 'nationalityOptionsList' },
    
    },
    wrapText: true,
    editable:true
},

{ 
  label: 'Age', fieldName: 'age__c',editable:true
},

{
    type: 'button',
    typeAttributes: { label: 'Delete', name: 'delete' }
}
]

在这里,同时访问提供值的其余字段。但是从自定义选择列表中更改的值并没有反映在 event.detail

我在模板中定义的自定义选择列表字段,

<template>
    <lightning-combobox 
    name='Nationality' 
    label='Nationality'
    placeholder='Choose Nationality' 
    value={typeAttributes.value}  
    options={typeAttributes.options}
    data-inputable="true"
    dropdown-alignment="auto"
    variant='label-hidden'>
</lightning-combobox>
</template> 

我的自定义组件extends Datatable是这样的

export default class CustomNationalityPickList extends LightningDatatable {
static customTypes = {
    nationalityPicklist: {
        template: nationalityPicklist,
        standardCellLayout: true,
        typeAttributes: ['value', 'options']
    }
 };
}

注意:当我更改国籍值时,默认取消/保存按钮不可见。但是当我更改任何其他标准字段时,我也可以编辑和保存。只有自定义字段有问题。

任何人都可以指导我解决问题并了解我在这里实施错误的地方。请建议任何文件参考?

salesforce custom-fields lwc
© www.soinside.com 2019 - 2024. All rights reserved.