簡単そうに聞こえますが、テーブルに出力された値をいくつかのフィールドセットから取得しているため、管理者ユーザーはテーブルに表示される列をカスタマイズできます。
これが私の機能しているページブロックです...
<apex:pageBlock title="{!$Label.Search_Results}">
<apex:pageBlockTable value="{!SearchResults}" var="pictureGallerySearchResult" title="SearchResults">
<apex:column headerValue="Image" styleClass="imageDataCell">
<a target="_blank" href="/servlet/servlet.FileDownload?file={!pictureGallerySearchResult.ActualAttachment.Id}" >
<img class="searchResultImage" style="{!SearchResultsImageStyle}" src="/servlet/servlet.FileDownload?file={!pictureGallerySearchResult.ActualAttachment.Id}" alt="{!pictureGallerySearchResult.ActualAttachment.Name}"/>
</a>
</apex:column>
<apex:column headerValue="Test" value="{!pictureGallerySearchResult.Project[pictureGallerySearchResultField]}"/>
<apex:repeat value="{!$ObjectType.Project__c.FieldSets.Picture_Gallery_Search_Results}" var="pictureGallerySearchResultField">
<apex:column headerValue="{!$ObjectType.Project__c.Fields[pictureGallerySearchResultField].label}" value="{!pictureGallerySearchResult.Project[pictureGallerySearchResultField]}"/>
</apex:repeat>
<apex:repeat value="{!$ObjectType.Store__c.FieldSets.Picture_Gallery_Search_Results}" var="pictureGallerySearchResultField">
<apex:column headerValue="{!$ObjectType.Store__c.Fields[pictureGallerySearchResultField].label}" value="{!pictureGallerySearchResult.Store[pictureGallerySearchResultField]}"/>
</apex:repeat>
<apex:repeat value="{!$ObjectType.Visit__c.FieldSets.Picture_Gallery_Search_Results}" var="pictureGallerySearchResultField">
<apex:column headerValue="{!$ObjectType.Visit__c.Fields[pictureGallerySearchResultField].label}" value="{!pictureGallerySearchResult.Visit[pictureGallerySearchResultField]}"/>
</apex:repeat>
<apex:repeat value="{!$ObjectType.Photo_Attachment__c.FieldSets.Picture_Gallery_Search_Results}" var="pictureGallerySearchResultField">
<apex:column headerValue="{!$ObjectType.Photo_Attachment__c.Fields[pictureGallerySearchResultField].label}" value="{!pictureGallerySearchResult.PhotoAttachment[pictureGallerySearchResultField]}"/>
</apex:repeat>
</apex:pageBlockTable>
</apex:pageBlock>
最初の列に画像の「ハードコードされた」ハイパーリンクを作成したことがわかりますが、カスタムオブジェクトの名前フィールドである場合は、フィールドを動的にハイパーリンクしたいと思います。
たとえば、フィールドセットが...
$ObjectType.Project__c.FieldSets.Picture_Gallery_Search_Results
...「名前」というフィールドが含まれています。そのプロジェクトを表示するためにセールスフォースページに移動するハイパーリンクを挿入します。
したがって、最初に、フィールドがカスタムオブジェクト名フィールドであるかどうかを判断できる必要があります。次に、ラベルではなくハイパーリンクを出力する必要があります。
誰かが何かアイデアを持っているなら、私は最も感謝するでしょう。
これをお読みいただきありがとうございます。