Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce 如何在lightning web组件数据表URL列中添加onclick功能_Salesforce_Salesforce Lightning - Fatal编程技术网

Salesforce 如何在lightning web组件数据表URL列中添加onclick功能

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

我在LWC中创建了一个lightning数据表,并添加了一个显示URL的自定义列。现在,我想在URL字段中添加
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})
});
});

您可以通过两种方式实现所需:

  • 创建静态行级操作
  • 创建自定义数据类型
有关更多信息,请访问:

这里有一些基本的javascript改进

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);
    })
}