2017-04-21 2 views
0

Je passe ma page Visualforce le code suivant pour avoir aux utilisateurs de sélectionner un site d'emploi pour poster une position sur:Comment puis-je obtenir les valeurs de liste sélectionnées dans 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> 

Et c'est le code du contrôleur, où je tente de récupérer les valeurs sélectionnées et trier pour déterminer si le site a été sélectionné:

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; 

} 
} 

Toutes les suggestions sur la façon d'obtenir les valeurs sélectionnées dans le régulateur pour créer une offre d'emploi? Faites-moi savoir si je devrais poster plus de mon code Visualforce. Merci!

+0

Dans 'system.debug (sélectionné)' est sélectionné nulle? – EricSSH

+0

Non, sélectionné est {get; set;} –

+0

Il devrait être la liste des valeurs que l'utilisateur sélectionne dans la liste des sites Web –

Répondre

0

Vous devez convertir le type de données pour sélectionné.

actuel: Set public sélectionné {get; ensemble;}

Mise à jour publique Liste sélectionnée {get; set;}