You need to sign in to do that
Don't have an account?

How to populate users in picklist based on their Profile?
Hi All,
How to populate users based on their profile?
For e.g. I have taken lookup field which consist of all the profile.
Once a role is selected, a picklist should get populate with all the users under that category of profile.
Your question is not clear. Are you trying to ppoulate user with a particluar profile or a particular role. I have provide the queries for both
VF PAge : (Profile Selection)
<apex:selectList id="selectList" size="1" multiselect="false" value="{!ProfileSelected}" >
<apex:selectOptions value="{!PopulateUsers}"/>
</apex:selectList>
In the Controller:
public String ProfileSelected{get; set;}
public List<SelectOption> getPopulateUsers() {
List<SelectOption> options = new List<SelectOption>();
for(User usr:[Select Name,Id From User where isactive = true and ProfileId=:ProfileSelected]) {
options.add(new SelectOption(usr.id,usr.name));
}
return options;
}
VF PAge : (Role Selection)
<apex:selectList id="selectList" size="1" multiselect="false" value="{!RoleSelected}" >
<apex:selectOptions value="{!PopulateUsers}"/>
</apex:selectList>
In the Controller:
public String RoleSelected{get; set;}
public List<SelectOption> getPopulateUsers() {
List<SelectOption> options = new List<SelectOption>();
//Select u.UserRoleId, u.ProfileId, u.Name, u.Id From User u where isactive = true and ProfileId=:ProfileSelected;
for(User usr:[Select Name,Id From User where isactive = true and UserRoleId=:RoleSelected]) {
options.add(new SelectOption(usr.id,usr.name));
}
return options;
}
Let me know if this is what you are looking for.
You can try following VF page and controller,
-- Visual Force Page --
<apex:page standardController="Account" extensions="populateUser">
<apex:form >
<apex:pageBlock >
<apex:inputField label="Profile" value="{!acc.owner.profileid}" required="false"/>
<apex:inputField label="Role" value="{!acc.owner.userroleid}"/>
<apex:commandButton value="Show Users" action="{!Showusers}"/>
<apex:selectList id="selectList" size="1" multiselect="false" value="{!UserSelected}" >
<apex:selectOptions value="{!PopulateUsers}"/>
</apex:selectList>
</apex:pageBlock>
</apex:form>
</apex:page>
-- Controller --
public class populateUser {
Public string UserSelected{get;set;}
Public Account acc{get;set;}
Public List<User> UserList {get;set;}
Public Boolean showuserList{get;set;}
public populateUser(ApexPages.StandardController controller) {
UserList = new List<user>();
showuserList = false;
user us = new user(profileid =null);
acc = new account(owner= us
);
}
Public Void Showusers(){
showuserList = true;
if(acc.owner.profileid != null && acc.owner.userRoleId !=null)
UserList = [select id,name from user where profileid =:acc.owner.profileid and UserRoleID=:acc.owner.userroleid];
else if(acc.owner.profileid != null && acc.owner.userRoleId ==null)
UserList = [select id,name from user where profileid =:acc.owner.profileid ];
}
public List<SelectOption> getPopulateUsers() {
List<SelectOption> options = new List<SelectOption>();
if(UserList.size()==0)
options.add(new SelectOption(' --None-- ',' --None-- '));
if(acc.owner.profileid != null){
for(User usrList :UserList ){
options.add(new SelectOption(usrList.name,usrList.name));
}
}
return options;
}
}
Mark this as answer and hit kudos if it helps you.
Thanks,
Yoganand.