Salesforce 如何在visualforce自定义组件中使用页面块表?

Salesforce 如何在visualforce自定义组件中使用页面块表?,salesforce,batch-processing,apex-code,visualforce,Salesforce,Batch Processing,Apex Code,Visualforce,我想添加一个自定义VF组件,以在pageblock表中显示批处理作业的详细信息。但我的组件未保存,它显示:错误:只读属性“c:batchDetailsComponent.BatchJobDetails” 请帮忙 这是visualforce组件: <apex:component controller="BatchOpportunityDetailsExtension"> <apex:attribute name="batchJob" type="List"

我想添加一个自定义VF组件,以在pageblock表中显示批处理作业的详细信息。但我的组件未保存,它显示:错误:只读属性“c:batchDetailsComponent.BatchJobDetails” 请帮忙

这是visualforce组件:

    <apex:component controller="BatchOpportunityDetailsExtension">
        <apex:attribute name="batchJob" type="List" assignTo="{!BatchJobDetails}" description="" />
            <apex:form >
                <apex:pageBlock>
                    <apex:pageblockTable value="{!batchJob}" var="batch">
                        <apex:column value="{!batch.CompletedDate}"/>    
                        <apex:column value="{!batch.JobItemsProcessed}"/>    
                        <apex:column value="{!batch.NumberOfErrors}"/> 
                    </apex:pageblockTable>  
                </apex:pageBlock>
            </apex:form>
    </apex:component>

VF页面:

    <apex:page standardController="Opportunity_Scheduled_Information__c" 
     extensions="BatchOpportunityDetailsExtension">
       <c:oppScheduleComponent componentValue="{!batchJob}"/>
    </apex:page>

控制器:

    public class BatchOpportunityDetailsExtension {

public List<AsyncApexJob> batchJobDetails = new List<AsyncApexJob>();    
public Opportunity_Scheduled_Information__c pageController {get;set;}
public BatchOpportunityDetailsExtension() {}

public BatchOpportunityDetailsExtension(ApexPages.StandardController controller) {
controller.addFields(new List<String>{'Total_Amount__c', 'Number_of_Opportunities__c'});
pageController = (Opportunity_Scheduled_Information__c)controller.getRecord();

BatchJobDetails = [ SELECT id,ApexClassID,CompletedDate,JobType,JobItemsProcessed,NumberOfErrors,MethodName,Status,ExtendedStatus,TotalJobItems FROM AsyncApexJob WHERE ApexClassId='01p7F000000bKIlQAM' LIMIT 50] ;   

}

public List<AsyncApexJob> getBatchJobDetails()
{
    return BatchJobDetails ;
}
}
公共类BatchOpportunityDetailsExtension{
公共列表batchJobDetails=新列表();
公共机会计划信息页面控制器{get;set;}
public BatchOpportunityDetailsExtension(){}
公共批处理机会详细信息张力(ApexPages.StandardController){
addFields(新列表{'Total_Amount_uuc','Number_of_Opportunities_uc'});
pageController=(Opportunity_Scheduled_Information__c)controller.getRecord();
BatchJobDetails=[从AsyncApexJob中选择id、ApexClassID、CompletedDate、JobType、JobItemsProcessed、NumberOfErrors、MethodName、Status、ExtendedStatus、TotalJobItems,其中ApexClassID='01p7F000000bKIlQAM'限制50];
}
公共列表getBatchJobDetails()
{
返回详细信息;
}
}

您需要将组件的访问权限设置为
global

像这样: