2014-03-03 6 views
0

사용자가 & 기회 제품 정보 수정을 입력 할 수있는 사용자 지정 Visualforce 페이지가 있습니다.Visualforce 페이지에서 apex : inputField에서 관련 객체를 어떻게 참조합니까?

저는 apex : pageblockTable을 사용하여 기회와 관련된 광고 항목이 포함 된 목록을 표시하고 있습니다. 관련 PRODUCT2 개체의 관련 필드 값을 기반으로 특정 필드의 표시 동작을 조건부로 제어하고 싶지만 문제가 있습니다.

이 내없이 VisualForce 코드 :

<apex:column headerValue="{!$ObjectType.OpportunityLineItem.Fields.Circuit__c.Label}"> 
<apex:inputField value="{!s.Circuit__c}" 
       style="width:70px" 
       required="true" onkeyup="refreshTotals();" 
       rendered="{!s.Product2.ptype__c == 'Recurring'}"/> 
</apex:column> 

내 의도는 'p- 형 _C'의 제품 2의 필드 어떤 조건에 따라 s.Circuit_ C 열/필드를 렌더링하지/렌더링하는 것입니다 이 OLI가 원래 채워 졌음을 기록합니다.

내가 "요청 된 필드를 쿼리하지 않고 SObject 행 SOQL을 통해 검색된 : OpportunityLineItem.Product2를"나는 오류가지고있어 그것을 실행하면 코드는 문제없이 컴파일하지만

은 누군가가 나에게 올바른 구문을 이해하는 데 도움이 될 수 Apex 태그 내부에서 관련 객체를 참조 할 수 있습니까?

감사합니다.

답변

1

VF 구문이 정확하지만 쿼리에서 Product2 필드를 쿼리하지 못했습니다.

쿼리는 다음과 같아야합니다

List<OpportunityLineItem> s = [SELECT id, Circuit__c, Product2, Product2.ptype__c FROM OpportunityLineItem]; 

이 필드를 누락 쿼리를 확인합니다 : 그것은 또한 예외에서 볼 수 Product2, Product2.ptype__c있다.

+0

답변 해 주셔서 감사합니다. 사실 Product2.ptype__c는 원래 쿼리에 있습니다. 또한 쿼리 예제에 "Product2"를 필드 이름으로 포함시킨 이유는 무엇입니까? ("Circuit__c"와 "Product2.ptype__c"사이) – user2653485