Salesforce PageBlockTable呈现项目的祖父母

时间:2012-08-20 16:51:08

标签: salesforce visualforce

我正在尝试在Visualforce页面的pageblocktable中显示自定义Salesforce对象的祖父母。

我可以按预期显示父级,即:

<apex:column headerValue="Related Item Parent">
    <apex:outputField id="ItemParent" value="{!item.Parent__c}" />
</apex:column>

效果很好,并为我提供了一个很好的表格,其中包含一个'Related Item Parent'列,该列完全按照我的意愿链接到Item parent。

但是当我尝试进一步升级时,Visualforce Page编辑器会告诉我

  

无法从值绑定中解析实体   '{!item.Parent_ c.Parent _c}'。只能使用   与SObject字段。

无论如何,这可以使用吗?我有点卡住了!

以下是我的pageBlockTable的完整列表,如果删除了Related Item Grandparent列,该列表可以正常工作。

<apex:pageBlockTable id="RelatedItems" value="{!contact.RelatedItems__r}" var="item">

    <apex:column headerValue="Related Item Name">
        <apex:outputField id="ItemName" value="{!item.Name}" />
    </apex:column>

    <apex:column headerValue="Related Item Parent">
        <apex:outputField id="ItemParent" value="{!item.Parent__c}" />
    </apex:column>

    <apex:column headerValue="Related Item Grandparent">
        <apex:outputField id="ItemGrandParent" value="{!item.Parent__c.Parent__c}" />
    </apex:column>

</apex:pageBlockTable>

非常感谢任何人都能提供的任何帮助。

祝你好运

皮特

1 个答案:

答案 0 :(得分:1)

引用关系对象的字段时,您需要使用__r后缀。例如,您可以使用item.Parent__c来引用父记录的ID,但访问该记录中的任何字段都需要item.Parent__r.Name之类的内容。

在这种情况下,您正在寻找{!item.Parent__r.Parent__c}(它将为您提供祖父母的Id),甚至是{!item.Parent__r.Parent__r.Name}(如果您希望访问祖父母记录中的字段)。< / p>