Salesforce 在VisualForce中获取MultiSelect选取列表的选定值
我有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
<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'}之前添加了这一行);错误已消失,但仍未选择选项