0
기회 페이지 레이아웃에 표시되는 Visualforce 페이지가 있습니다. 목표는 기회와 관련된 각 기회 라인 항목 (OLI)을 수량 입력 필드와 함께 표시하는 것입니다. 나는 VF 페이지에서 OLI의 양을 바꿀 수 있어야합니다. 표준 기회 컨트롤러 확장 된 컨트롤러 및 모든 올바르게 표시 할 수 있지만 사용자 지정 저장 메서드로 저장하려고하면 페이지 새로 고침 및 필드 변경 내용이 업데이트되지 않습니다. 어떤 도움을 주셔서 감사합니다!단일 Visualforce 페이지에서 여러 기회 광고 항목 수량 업데이트
VF 페이지 :
<apex:page standardController="Opportunity" extensions="OLIController">
<apex:form >
<apex:pageBlock title="Opportunity Products">
<apex:pageBlockTable var="OLI" value="{!OLIs}" id="newProduct">
<apex:column value="{!OLI.name}"/>
<apex:column headerValue="Quantity">
<apex:inputfield id="Quantity" value="{!OLI.Quantity}"/>
</apex:column>
</apex:pageBlockTable>
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!saveIt}" immediate="false"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
CONTROLLER : 공유 클래스 OLIController {
public ApexPages.StandardController sc;
public Opportunity Opp {get;set;}
private Map<Id, OpportunityLineItem> oliItems;
public List<OpportunityLineItem> OLIlist2 {get ;set;}
public OLIController(ApexPages.StandardController sc) {
this.Opp = (Opportunity)sc.getRecord();
}
public List<OpportunityLineItem> getOLIs() {
List<OpportunityLineItem> OLIlist2 = [Select Name, ID, Quantity, OpportunityId FROM OpportunityLineItem WHERE OpportunityId =:Opp.Id];
return OLIlist2;
}
public PageReference saveIt() {
List<OpportunityLineItem> listOLI = getOLIs();
update listOLI;
return null;
}
} 해결