Ich habe eine Visualforce-Seite, die auf dem Opportunity-Seitenlayout inline angezeigt wird. Das Ziel besteht darin, jede Opportunity-Werbebuchung (OLI), die der Opportunity zugeordnet ist, mit einem Eingabefeld für die Anzahl anzuzeigen. Ich muss in der Lage sein, die Menge des OLI von der VF-Seite zu ändern. Ich habe einen Controller, der von dem Standard-Opportunity-Controller erweitert wird, und alles wird korrekt angezeigt, aber wenn ich versuche, mit meiner benutzerdefinierten Speichermethode zu speichern, wird die Seite aktualisiert und die Änderungen an den Feldern werden nicht aktualisiert. Jede Hilfe wird geschätzt!Aktualisiere Menge von mehreren Werbebuchungen auf einer einzelnen Visualforce-Seite
VF SEITE:
<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>
REGLER: Öffentlichkeit mit Sharing-Klasse 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;
}
}