2017-04-21 36 views
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代码。谢谢!

+0

在'system.debug(选择);'选择空? – EricSSH

+0

不,选中的是{get;设置;} –

+0

它应该是用户在网站列表中选择的值列表 –

回答

0

您需要转换选定的数据类型。

电流: 公共设置选择{获得;设置;}

更新 公共列表选择{获取;集;}

相关问题