2016-06-15 2 views
0

У меня есть страница visualforce, которая отображается на странице макета страницы возможностей в строке. Цель состоит в том, чтобы отобразить каждую возможную позицию (OLI), связанную с возможностью, с полем ввода количества. Мне нужно изменить количество OLI на странице VF. У меня есть контроллер, который расширен от стандартного контроллера возможностей, и все отображается правильно, но когда я пытаюсь сохранить с помощью своего настраиваемого метода сохранения, страница обновляется, а изменения в полях не обновляются. Любая помощь приветствуется!Обновление количества позиций с несколькими вариантами на одной странице Visualforce

VF PAGE:

<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; 

} 

}

ответ

0

Проблема решена;

Просто нужно добавить данные из «get» части OLIlist2 с контроллера на OLIController sc. См. Измененный код ниже.

public with sharing class OLIController { 

public ApexPages.StandardController sc; 
public Opportunity Opp {get;set;} 
public List<OpportunityLineItem> OLIlist2 {get ;set;} 

public OLIController(ApexPages.StandardController sc) { 
this.Opp = (Opportunity)sc.getRecord(); 
OLIlist2 = [Select Name, ID, Quantity, OpportunityId FROM OpportunityLineItem WHERE OpportunityId =:Opp.Id]; 
} 


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 OLIlist2; 

    return null; 

} 

}

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