无法显示相关记录

时间:2017-11-28 09:30:52

标签: salesforce apex-code visualforce apex

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

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

我试图通过视觉力显示与X的标准页面相关的所有Y.

Visualforce:

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

Apex课程:

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仅显示:

参数值无效&#34; [a120E0000001234567,a120E0000007654321]&#34;参数&#34; id&#34;

此ID对于保留在此X对象中的Y对象

有效

我尝试了很多,但我可以找到解决方案。

2 个答案:

答案 0 :(得分:1)

我认为你并不了解Visualforce中?- prove(temperature_trend(decrease), L). L = [temperature_trend(decrease), window(open)]. 组件的属性。

参考:

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

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

所有你需要的是:

apex:relatedList

  1. 您需要为<apex:relatedList list="Contacts"/>属性
  2. 指定关系名称
  3. 您不需要指定主题(主题是您尝试显示的列表的父级记录),因为这将自动由标准控制器填充
  4. 希望有所帮助。

答案 1 :(得分:0)

我找到了使用&lt; apex:pageBlockTable而不是&lt; apex:relatedList

的解决方案
<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>