如何在Salesforce中排序自定义设置记录:全大写值后置
调整自定义设置记录在Aura组件中的显示顺序
我们在Aura组件中获取自定义设置的值,当前UI显示时全大写的CGU记录位置不符合需求,需要将这类记录放到最后,其余记录保持原有顺序。
原Apex类代码
@AuraEnabled public static AP_ApplicantSpaceFooterWrapper getdisclaimerCS(){ AP_ApplicantSpaceFooterWrapper footerDetailsWrapper = new AP_ApplicantSpaceFooterWrapper(); List<CS_DisclaimerLink__c> disclaimerLinkList = CS_DisclaimerLink__c.getall().values(); footerDetailsWrapper.disclaimerLinkCSList = disclaimerLinkList; footerDetailsWrapper.userLanguage = UserInfo.getLanguage(); return footerDetailsWrapper; }
修改后的Apex类代码(实现排序逻辑)
@AuraEnabled public static AP_ApplicantSpaceFooterWrapper getdisclaimerCS(){ AP_ApplicantSpaceFooterWrapper footerDetailsWrapper = new AP_ApplicantSpaceFooterWrapper(); List<CS_DisclaimerLink__c> disclaimerLinkList = CS_DisclaimerLink__c.getall().values(); // 拆分记录:普通记录和全大写CGU记录 List<CS_DisclaimerLink__c> normalRecords = new List<CS_DisclaimerLink__c>(); List<CS_DisclaimerLink__c> uppercaseCguRecords = new List<CS_DisclaimerLink__c>(); for(CS_DisclaimerLink__c rec : disclaimerLinkList){ // 按需求筛选全大写的CGU记录,可根据实际字段调整判断条件 if(rec.Name != null && rec.Name.equals(rec.Name.toUpperCase()) && rec.Name == 'CGU'){ uppercaseCguRecords.add(rec); } else { normalRecords.add(rec); } } // 合并列表:普通记录保持原顺序在前,CGU记录追加到末尾 normalRecords.addAll(uppercaseCguRecords); footerDetailsWrapper.disclaimerLinkCSList = normalRecords; footerDetailsWrapper.userLanguage = UserInfo.getLanguage(); return footerDetailsWrapper; }
Aura组件助手方法(无需修改)
({ doInit : function(component, event, helper) { helper.callServer( component, "c.getdisclaimerCS", function(response){ console.log('response: '+response); if(!$A.util.isEmpty(response)){ component.set("v.disclaimerLinksCS", response); } } ); } })
逻辑说明
- 核心是在Apex层对自定义设置记录进行分组处理:遍历所有记录,将全大写的CGU记录单独归类,其余记录保留原有顺序,最后把CGU记录追加到普通记录列表末尾。
- 如果自定义设置中标识全大写CGU的字段不是
Name,只需替换代码中对应的字段名即可。
内容的提问来源于stack exchange,提问作者Amit Kundu
相关产品推荐
相关产品推荐

