0
我通過我的Visualforce頁面下面的代碼讓用戶選擇一個招聘網站上張貼的位置:如何獲取Salesforce中的選定列表值?
<apex:page standardController="Position__c" extensions="PositionExtension">
<apex:form >
<apex:pageBlock title="Create New Position">
<apex:pageBlockButtons >
<apex:commandButton title="Save" value="Save" action="{!save}"/>
<apex:commandButton title="Edit" value="Edit" action="{!edit}"/>
<apex:commandButton title="Cancel" value="Cancel" action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:pageBlockSection columns="3" title="Basic Information">
<apex:pageBlockSectionItem >
Position Title
<apex:inputField value="{!Position__c.name}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Record Type
<apex:inputField value="{!Position__c.recordtypeId}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Open Date
<apex:inputField value="{!Position__c.Open_Date__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Close Date
<apex:inputField value="{!Position__c.Close_Date__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Hire By
<apex:inputField value="{!Position__c.Hire_By__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Job Type
<apex:inputField value="{!Position__c.Type__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Location
<apex:inputField value="{!Position__c.Location__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Travel Required?
<apex:inputField value="{!Position__c.Travel_Required__c}" required="false"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Status
<apex:inputField value="{!Position__c.Status__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Functional Area
<apex:inputField value="{!Position__c.Functional_Area__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Job Level
<apex:inputField value="{!Position__c.Job_Level__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Job Description
<apex:inputField value="{!Position__c.Job_Description__c}" required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Responsibilities
<apex:inputField value="{!Position__c.Responsibilities__c}"
required="true"/>
</apex:pageBlockSectionItem>
<br></br>
<apex:pageBlockSectionItem >
Min Pay
<apex:inputField value="{!Position__c.Min_Pay__c}"
required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Max Pay
<apex:inputField value="{!Position__c.Max_Pay__c}"
required="true"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
<apex:pageBlockSection title="Education and Skills" columns="3">
<apex:pageBlockSectionItem >
Educational Requirements
<apex:inputField value="{!Position__c.Educational_Requirements__c}"
required="true"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Skills Required
<apex:inputField value="{!Position__c.Skills_Required__c}" required="false"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Apex
<apex:inputField value="{!Position__c.Apex__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
C#
<apex:inputField value="{!Position__c.C_sharp__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
Java
<apex:inputField value="{!Position__c.Java__c}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
JavaScript
<apex:inputField value="{!Position__c.JavaScript__c}"/>
</apex:pageBlockSectionItem>
<apex:selectList value="{!selected}" multiselect="true">
<apex:selectOptions value="{!websites}"/>
</apex:selectList>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:Form>
</apex:page>
這是從控制器,在那裏我試圖檢索所選值的代碼並通過排序,以確定是否被選中的網站:
public class PositionExtension {
public Position__c pos{get; set;}
public List<Employment_Website__c> employ{get;set;}
Public List<Job_Posting__c> joblist = new List<Job_Posting__c>();
Public Set<String> selected{get;set;}
public PositionExtension (ApexPages.StandardController controller){
pos = (Position__c)Controller.getRecord();
}
//List<Job_Posting__c> postings = [SELECT Id, Employment_Website__c FROM Job_Posting__c WHERE Position__c = :pos.Id];
public List<Employment_Website__c> website{
get{return [SELECT Id, Name, web_address__c FROM Employment_Website__c];}
set{website = value;}
}
public List<SelectOption> getWebsites(){
List<SelectOption> options = new List<SelectOption>();
for (Employment_Website__c web : website){
options.add(new SelectOption(web.Id, web.name));
}
return options;
}
public Set<String> updateSelected(){
return selected;
}
public PageReference save(){
//List<Job_Posting__c> postings = [SELECT Id, Employment_Website__c FROM Job_Posting__c WHERE Position__c = :pos.Id];
upsert pos;
for(Employment_Website__c web : website){
system.debug(selected);
if(selected.contains(web.Id)){
Job_Posting__c posting = new Job_Posting__c();
posting.Employment_Website__c = web.Id;
posting.Position__c = pos.Id;
joblist.add(posting);
}
}
upsert joblist;
PageReference acctPage = new ApexPages.StandardController(pos).view();
acctPage.setRedirect(true);
return acctPage;
}
}
如何讓所選擇的值回控制器創建一個招聘啓事有什麼建議?讓我知道是否應該發佈更多我的Visualforce代碼。謝謝!
在'system.debug(選擇);'選擇空? – EricSSH
不,選中的是{get;設置;} –
它應該是用戶在網站列表中選擇的值列表 –