2016-06-23 3 views
0

Salesforce VF 페이지의 단일 pageblocktable에 Contact 개체가 오는 계정 레코드와 두 개의 개체 (Account & Contact)의 레코드를 표시해야한다는 요구 사항이 있습니다. 래퍼 클래스를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있지만, 필자가 직면 한 모든 예제는 pageblocktable의 다른 객체에서 세로로 (가로로가 아닌) 확인란을 표시하거나 표시하는 것에 대해 이야기했습니다.하나의 pageblock 테이블에 Salesforce VF 페이지의 여러 객체의 데이터 표시

포인터/코드 샘플이 좋을 것입니다. 감사!!

 Object Name     Phone   Email 

기록 1 - 계정 - 계정 이름 - 계정 전화 -Account 이메일

기록 2 - 연락처 - 연락처 이름 - 연락처의 전화 - 문의 이메일

+0

래퍼 클래스를 사용하여 요구 사항을 충족시킬 수없는 이유를 더 광범위하게 설명 할 수 있습니까? 데이터 용 컨테이너 일 뿐이므로 원하는대로 UI에서 처리하고 표시 할 수 있습니다. –

답변

0

나는이 일을 더러운 방법을 발견 . 이것은 가장 좋은 대답은 아니지만 다음과 같이 필요한 기능을 수행 할 수 있습니다. 2 차원 배열을 만들고 다른 객체의 데이터를 문자열로 저장합니다. 그런 다음 데이터를 표시하려면 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> 

널 (null)를 확인해야합니다.