2013-06-05 2 views
0

У меня есть список выбора multiselect, и я хочу получить выбранные значения для операции вставки и обновления.получить выбранные значения в списке выбора MultiSelect в VisualForce

<apex:page standardController="Change_Request__c" sidebar="false" extensions="Change_RequestController"> 
    <apex:selectList label="Select Pasenger(s)" value="{!Change_Request__c.Passenger_Name__c}" multiselect="true" onfocus="getSelectedID('{!$Component.empid}');" > 
     <apex:selectOptions value="{!pax}" /> 
    </apex:selectList> 

И это мое продолжение:

public class Change_RequestController { 
    private final Change_Request__c changer; 
    public List<selectOption> pax; 
    public Change_RequestController(ApexPages.StandardController controller) { 
    this.changer = (Change_Request__c)controller.getRecord(); 
    } 
    public List<selectOption> getPax() { 
    List<selectOption> options = new List<selectOption>(); 
    String fullName; 
    for (Passenger_Info__c p : [SELECT Id,First_Name__c,Name from Passenger_Info__c ]) { 
     fullName = (p.First_Name__c == null)?'':p.First_Name__c+' '+p.Name; 
     options.add(new selectOption(fullName, fullName)); 
    } 
    return options; 
    } 
    public List<selectOption> setPax() { 
    List<selectOption> options = new List<selectOption>(); 
    for (String pa : changer.Passenger_Name__c.split(',')) { 
     options.add(new selectOption(pa, pa)); 
    } 
    return options; 
    } 
} 

ответ

0

Изменить контроллер для

public class Change_RequestController { 
    public Change_Request__c changer{get;set;} 
    public Change_RequestController(ApexPages.StandardController controller) { 
    this.changer = (Change_Request__c)controller.getRecord(); 
    } 
    public List<selectOption> getPax() { 
    List<selectOption> options = new List<selectOption>(); 
    String fullName; 
    for (Passenger_Info__c p : [SELECT Id,First_Name__c,Name from Passenger_Info__c ]) { 
     fullName = (p.First_Name__c == null)?'':p.First_Name__c+' '+p.Name; 
     options.add(new selectOption(fullName, fullName)); 
    } 
    return options; 
    } 
} 

и страницу

<apex:selectList label="Select Pasenger(s)" value="{!changer.Passenger_Name__c}" multiselect="true" onfocus="getSelectedID('{!$Component.empid}');" > 
     <apex:selectOptions value="{!pax}" /> 
    </apex:selectList> 
+0

контроллер принимает изменения, но visualpage сказал: Ошибка: неизвестное свойство 'Change_Request__cStandardCon troller.changer» –

+0

делают смены общественным –

+0

Так что я сделали это, и я получил эту ошибку: Ошибка Visualforce для этой страницы System.SObjectException: SObject строка была извлечена через SOQL без запроса запрашиваемых полей: Change_Request__c.Passenger_Name__c Итак, я добавляю эту строку перед this.changer = (Изменить ... controller.addFields (new String [] {'Passenger_Name__c'}); Ошибка исчезла, но параметры, которые еще не выбраны –

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