You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义对象列表视图选中的记录ID传递至Apex控制器?

实现MyClass__c列表视图选中记录ID传递到Apex控制器

以下是完整落地的实现步骤及代码:

1. 创建Apex控制器

该控制器负责接收列表视图传递的选中记录ID,并提供自定义处理逻辑:

public class MyClassController {
    public List<String> myClassIds { get; set; }

    public MyClassController() {
        // 从页面参数中获取选中的记录ID集合
        String idsParam = ApexPages.currentPage().getParameters().get('ids');
        myClassIds = idsParam != null ? idsParam.split(',') : new List<String>();
        System.debug('选中的MyClass__c记录ID: ' + myClassIds);
    }

    // 处理选中记录的业务方法
    public void processSelectedRecords() {
        System.debug('开始处理选中记录,ID列表: ' + myClassIds);
        // 示例:查询选中的记录,可在此添加业务逻辑
        List<MyClass__c> selectedRecords = [SELECT Id, Name FROM MyClass__c WHERE Id IN :myClassIds];
    }
}

2. 创建Visualforce页面

作为列表视图自定义按钮的跳转目标,展示选中记录ID并触发控制器处理逻辑:

<apex:page controller="MyClassController">
    <apex:form>
        <apex:pageMessages />
        <!-- 触发处理逻辑的按钮 -->
        <apex:commandButton value="处理选中的MyClass记录" action="{!processSelectedRecords}" rerender="resultPanel"/>
        
        <!-- 展示选中的记录ID -->
        <apex:outputPanel id="resultPanel">
            <apex:repeat value="{!myClassIds}" var="recordId">
                <p>选中的记录ID: {!recordId}</p>
            </apex:repeat>
        </apex:outputPanel>
    </apex:form>
</apex:page>

注:保存页面时建议命名为MyClassProcessingPage,后续配置按钮会用到该名称。

3. 为MyClass__c列表视图添加自定义按钮

  1. 进入Salesforce设置,打开对象管理器中的MyClass__c对象;
  2. 点击按钮、链接和操作 > 新建按钮或链接;
  3. 配置参数:
    • 显示类型:列表视图按钮
    • 行为:在新窗口中打开
    • 内容源:URL
    • URL内容:
      /apex/MyClassProcessingPage?ids={!GETRECORDIDS($ObjectType.MyClass__c)}
      
  4. 保存按钮后,将其添加到MyClass__c的列表视图布局中,即可在列表视图选中记录后点击按钮传递ID到控制器。

内容的提问来源于stack exchange,提问作者whitili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:05:04