You need to sign in to do that
Don't have an account?
udayar_jayam
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.