Salesforce 如何在lightning web组件数据表URL列中添加onclick功能
我在LWC中创建了一个lightning数据表,并添加了一个显示URL的自定义列。现在,我想在URL字段中添加Salesforce 如何在lightning web组件数据表URL列中添加onclick功能,salesforce,salesforce-lightning,Salesforce,Salesforce Lightning,我在LWC中创建了一个lightning数据表,并添加了一个显示URL的自定义列。现在,我想在URL字段中添加onclick事件,并希望将行信息传递给javascript方法 其思想是呈现组件标记,该标记将显示有关所单击项的所有信息(在同一LWC中) 有人能帮我吗;如何在URL中添加onclick事件并使用LWC datatable中的函数处理click事件 test.html <div class="" style="height:420px"> <lightning
onclick
事件,并希望将行信息传递给javascript方法
其思想是呈现组件标记,该标记将显示有关所单击项的所有信息(在同一LWC中)
有人能帮我吗;如何在URL中添加onclick事件并使用LWC datatable中的函数处理click事件
test.html
<div class="" style="height:420px">
<lightning-datatable key-field="Id"
data={lstAllRows}
columns={columns}
onrowaction={handleRowAction}
enable-infinite-loading
load-more-offset={intLoadOffset}
onloadmore={handleLoadMoreData}
hide-checkbox-column>
</lightning-datatable>
</div>
我正在添加url的位置:
record.linkName = '/lightning/r/'+record.Id+'/view';
我想在这里添加一个
onclick
事件,并停止URL重定向行为。任何对URL的点击都不应将用户重定向到新页面;相反,一段标记应该在同一个LWC上呈现记录细节。我认为记录是一个对象,而不是HTML元素
你可能会做的是:
const records=querySelectorAll('.record')//向记录中添加一个类
records.forEach(记录=>{
record.addEventListener('click',函数(e){
e、 preventDefault();//您不想要默认行为
//你的密码在这里
console.log({e})
});
});
您可以通过两种方式实现所需:
- 创建静态行级操作
- 创建自定义数据类型
async getRequiredList () {
try {
const response = await getTabelData({
strName: this.strName
});
this.lstAllRows = response.lstExistingData.map(record => ({
...record,
linkName: `/lightning/r/${record.Id}/view`,
}));
} catch (error) {
this.strRecordErrorMessage = error.body.message;
console.log('Error in getting the accounts', this.strRecordErrorMessage);
})
}
我也在尝试做类似的事情。另外,在Salesforce LWC中,通过JS添加事件监听器不是推荐的方法,用户希望获得输入而不是单击。
async getRequiredList () {
try {
const response = await getTabelData({
strName: this.strName
});
this.lstAllRows = response.lstExistingData.map(record => ({
...record,
linkName: `/lightning/r/${record.Id}/view`,
}));
} catch (error) {
this.strRecordErrorMessage = error.body.message;
console.log('Error in getting the accounts', this.strRecordErrorMessage);
})
}