Salesforce Lightning组件中的动态可重用自定义列表视图

2023-10-19 07:20

本文主要是介绍Salesforce Lightning组件中的动态可重用自定义列表视图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📖摘要


今天分享下 —— Salesforce Lightning组件中的动态可重用自定义列表视图 的一些基本知识,欢迎关注!

Salesforce始终在开发新功能。最近引入了新的闪电组件,称为“ lightning:listView ”。这有助于我们根据特定对象在闪电体验,闪电社区和Salesforce移动应用程序上的列表视图查看所有记录。在标准的“ lightning:listview”组件中,我们一次只能显示一个列表视图,并且要进行更改,我们需要在代码中再次进行编辑。为了使其更加灵活和动态,我们创建了一个自定义下拉菜单,这将帮助我们直接从闪电组件输出更改列表视图。

在这里插入图片描述


❤正题


ListViewController [顶点控制器]
public class listViewController {/*apex method to fetch wrapper of list view*/ @AuraEnabledpublic static list<listViewWrapper> listValues(string objectInfo){list<listViewWrapper> oListViewWrapper = new list<listViewWrapper>();for(ListView lv : [SELECT id, Name, DeveloperName FROM ListViewWHERE sObjectType = : objectInfo ORDER By Name ASC]){ listViewWrapper oWrapper = new listViewWrapper();oWrapper.label = lv.Name;oWrapper.developerName = lv.DeveloperName;oListViewWrapper.add(oWrapper);}return oListViewWrapper; }/*wrapper class to store listView details*/ public class listViewWrapper{@AuraEnabled public string label{get;set;} @AuraEnabled public string developerName{get;set;} }
}

闪电组件[CustomListView.cmp]
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction"access="global"controller="listViewController"><!-- call doInit js function on component load to fetch list view details-->   <aura:handler name="init" value="this" action="{!c.doInit}"/><!-- aura attributes -->   <aura:attribute name="listViewResult" type="string[]"/><aura:attribute name="objectInfo" type="string" default="Account"/><aura:attribute name="currentListViewName" type="string" /><aura:attribute name="bShowListView" type="boolean" default="false"/> <!-- custom dropdown to display available list view options--><div class="slds-form-element"><lightning:select name="select1" onchange="{!c.onPicklistChange}" label=" " class="customCls"><aura:iteration items="{!v.listViewResult}" var="listView"><option value="{!listView.developerName}">{!listView.label}</option></aura:iteration> </lightning:select> </div><!-- lightning List View : https://sforce.co/2Q4sebt--> <aura:if isTrue="{!v.bShowListView}"><lightning:listView objectApiName="{!v.objectInfo}"listName="{!v.currentListViewName}"rows="5"showSearchBar="true"showActionBar="false"enableInlineEdit="true"showRowLevelActions="false"/></aura:if> 
</aura:component>

在此列表视图示例中,我们使用了 Account 对象,您可以根据闪电组件第10行的要求更改对象API(区分大小写)的名称


JavaScript控制器[CustomListViewController.js]
({doInit : function(component, event, helper) {// call apex method to fetch list view dynamically var action = component.get("c.listValues");action.setParams({"objectInfo" : component.get("v.objectInfo")});action.setCallback(this, function(response) {var state = response.getState();if (state === "SUCCESS") {var listViewResult = response.getReturnValue();if(listViewResult.length > 0){// set listViewResult attribute with responsecomponent.set("v.listViewResult",listViewResult);// set first value as default valuecomponent.set("v.currentListViewName", listViewResult[0].developerName);// rendere list view on componentcomponent.set("v.bShowListView", true);     }            } else if (state === "INCOMPLETE") {}else if (state === "ERROR") {var errors = response.getError();if (errors) {if (errors[0] && errors[0].message) {console.log("Error message: " + errors[0].message);}} else {console.log("Unknown error");}}});$A.enqueueAction(action);},onPicklistChange: function(component, event, helper) {// unrenders listView component.set("v.bShowListView", false); // get current selected listview Name var lstViewName = event.getSource().get("v.value"); // set new listName for listViewcomponent.set("v.currentListViewName", lstViewName);// rendere list view again with new listNew  component.set("v.bShowListView", true); },
})
  • 注意:检查代码注释。

CSS [CustomListView.css]
/* align picklist inside list view*/
.THIS .customCls{margin-top: -10px;width: 50%;position: absolute;right: 17px;
}

效果:

在这里插入图片描述


🎉最后

  • 更多参考精彩博文请看这里:《salesforce 系列》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

这篇关于Salesforce Lightning组件中的动态可重用自定义列表视图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238261

相关文章

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现