我使用 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']
}
};
}
注意:当我更改国籍值时,默认取消/保存按钮不可见。但是当我更改任何其他标准字段时,我也可以编辑和保存。只有自定义字段有问题。
任何人都可以指导我解决问题并了解我在这里实施错误的地方。请建议任何文件参考?