Salesforce 在VisualForce中获取MultiSelect选取列表的选定值

Salesforce 在VisualForce中获取MultiSelect选取列表的选定值,salesforce,apex-code,visualforce,Salesforce,Apex Code,Visualforce,我有multiselect选取列表,我想获得插入和更新操作的选定值 <apex:page standardController="Change_Request__c" sidebar="false" extensions="Change_RequestController"> <apex:selectList label="Select Pasenger(s)" value="{!Change_Request__c.Passenger_Name__c}" multisel

我有multiselect选取列表,我想获得插入和更新操作的选定值

<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;
  }
}
公共类更改\u请求控制器{
私人最终变更请求变更人;
公共名单;
公共变更请求控制器(ApexPages.StandardController){
this.changer=(更改请求)controller.getRecord();
}
公共列表getPax(){
列表选项=新列表();
字符串全名;
对于(乘客信息p:[选择Id、姓名、乘客信息中的姓名]){
全名=(p.First\u Name\u c==null)?“”:p.First\u Name\u c+“”+p.Name;
添加(新选择选项(全名,全名));
}
返回选项;
}
公共列表setPax(){
列表选项=新列表();
用于(字符串pa:changer.Passenger\u Name\u\u c.split(',')){
选项。添加(新选择选项(pa,pa));
}
返回选项;
}
}
将控制器更改为

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;
  }
}
公共类更改\u请求控制器{
公共更改请求更改器{get;set;}
公共变更请求控制器(ApexPages.StandardController){
this.changer=(更改请求)controller.getRecord();
}
公共列表getPax(){
列表选项=新列表();
字符串全名;
对于(乘客信息p:[选择Id、姓名、乘客信息中的姓名]){
全名=(p.First\u Name\u c==null)?“”:p.First\u Name\u c+“”+p.Name;
添加(新选择选项(全名,全名));
}
返回选项;
}
}
翻页至

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


控制器正在接受更改,但visualpage显示:错误:未知属性“change\u Request\u cStandardController.changer”,因此我执行了该操作,我得到了这个错误:Visualforce error Help for this Page System.SObjectException:SObject行是通过SOQL检索的,没有查询请求的字段:Change_Request_uc.Passenger_Name_uc,所以我在this.changer=(Change…controller.addFields(新字符串[]{'Passenger_Name_uc'}之前添加了这一行);错误已消失,但仍未选择选项