2016-06-23 1 views
0

У меня есть требование отображать записи из 2 объектов (учетная запись & Контакт) в одной страницеblocktable на странице Salesforce VF, записи учетной записи, за которой следуют записи Contact. Я знаю, что мы можем достичь этого, используя класс-оболочку, но все примеры, с которыми я столкнулся, говорили об отображении флажка или отображении столбцов по вертикали (не по горизонтали) из разных объектов в pageblocktable.Отображение данных из нескольких объектов на странице Salesforce VF на одной страницеblocktable

Поблагодарили бы за любые указатели/образцы кода. Благодаря!!

 Object Name     Phone   Email 

Запись 1 - Учетная запись - имя учетной записи - Счет Телефон -Account Email

Record 2 - Контакт - Контакт Имя - Контактный телефон -Контактного Email

+0

Можете ли вы более подробно описать, почему вы не можете достичь своих потребностей с помощью класса-обертки? Это всего лишь контейнер для данных, и вы можете обрабатывать и отображать на нем пользовательский интерфейс по своему усмотрению. –

ответ

0

Я нашел грязный способ сделать это , Это может быть не лучший ответ, но вы можете достичь требуемой функциональности следующим образом. Создайте двухмерный массив и сохраните данные другого объекта в виде строк. Затем перейдите по массиву на странице visualforce, чтобы отобразить данные.

public class MixedObjectVFController { 

public static List<List<String>> getObjectList(){ 
    List<List<String>> strList = new List<List<String>>(); 
    List<Account> acc = [select name,phone from account limit 2]; 

    for(account a : acc){ 
     List<String> tempList = new List<String>(); 
     tempList.add('account'); 
     tempList.add(a.name); 
     tempList.add(a.phone); 
     strList.add(tempList); 
    } 
    List<contact> cList = [select name,phone from contact limit 2]; 
    for(contact a : cList){ 
     List<String> tempList = new List<String>(); 
     tempList.add('contact'); 
     tempList.add(a.name); 
     tempList.add(a.phone); 
     strList.add(tempList); 
    } 
    return strList; 
} } 

и Visualforce страница

<apex:page controller="MixedObjectVFController" > 
<apex:pageBlock> 
    <apex:pageBlockSection> 
     <apex:pageBlockTable value="{!objectList}" var="item"> 
      <apex:column headerValue="Object" value="{!item[0]}" /> 
      <apex:column headerValue="Name" value="{!item[1]}" /> 
     </apex:pageBlockTable> 
    </apex:pageBlockSection> 
</apex:pageBlock> 

Убедитесь, чтобы проверить нули при использовании индексов.

Смежные вопросы