无法显示相关记录

Not able to show related records

我有两个自定义对象,X 和 Y。

对象 Y 通过查找与 X 相关 YretatedX__c。

我正在尝试通过视觉效果显示与 X 的 X y 标准页面相关的所有 Y。

视觉力量:

<apex:page standardController="X__c" extensions="related_list">
    <apex:detail relatedList="true">
        <apex:relatedList list="Y__c" subject="{!AllRelated}"/> 
    </apex:detail>
</apex:page>

顶点Class:

public class related_list {
    private X__c x;
    private Id idX;
    public List<Y__c> AllRelated = new Y__c[]{};
    public related_list(ApexPages.StandardController controller) {
        this.x=(X__c)controller.getRecord();
        idX = this.x.Id;
    }
    public List<Y__c> getAllRelated() {
        AllRelated = [SELECT id FROM Y__c WHERE YretatedX__c =: this.idX];
        return AllRelated;
    }
} 

在X页面中,visualforce只显示:

参数 "id"

的无效参数值“[a120E0000001234567, a120E0000007654321]”

此 ID 对重述到此 X 对象的 Y 对象有效

我试了很多,但我能找到解决办法。

我找到了使用 的解决方案

<apex:page standardController="X__c" extensions="related_list">
    <apex:pageblock id="CustomList" title="Y"  >
        <apex:pageBlockTable value="{!AllRelated}" var="y" rendered="true">
                <apex:column value="{!y.id}"/>
        </apex:pageBlockTable>
    </apex:pageblock>
</apex:page>

我认为您不了解 Visualforce 中 apex:relatedList 组件的属性。

参考这个:

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_relatedList.htm

请注意,您实际上不需要查询记录以使用组件显示它们。

你只需要这个:

<apex:relatedList list="Contacts"/>

  1. 您需要为 list 属性指定关系名称
  2. 您不需要指定主题(主题是您要显示的列表的父项的记录),因为这将由标准控制器自动填充

希望对您有所帮助。