Salesforce 需要更新选中的员工(自定义)的角色(自定义字段)
角色分配给每个员工,每个员工都有一个复选框。每当选中复选框并从下拉列表中选择角色(选择列表中的角色)时,应在单击“更新”按钮后将新角色分配给员工。 我怎么得到它。。我已将ID分配给复选框,并尝试像Salesforce 需要更新选中的员工(自定义)的角色(自定义字段),salesforce,apex,visualforce,Salesforce,Apex,Visualforce,角色分配给每个员工,每个员工都有一个复选框。每当选中复选框并从下拉列表中选择角色(选择列表中的角色)时,应在单击“更新”按钮后将新角色分配给员工。 我怎么得到它。。我已将ID分配给复选框,并尝试像一样,如果复选框==true则执行某些条件,但它不起作用。请指导我 VF页面 <apex:page extensions="EmployeeSelectClassController13" standardController="Employee__c" sidebar="false">
一样,如果复选框==true
则执行某些条件,但它不起作用。请指导我
VF页面
<apex:page extensions="EmployeeSelectClassController13" standardController="Employee__c" sidebar="false">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection title="Employees" collapsible="false">
<apex:pageBlockTable value="{!wrapEmployeeList}" var="empWrap" id="table" title="All Employees">
<apex:column >
<apex:inputCheckbox value="{!empWrap.selected}" id="inputCheckbox"/>
</apex:column>
<apex:column value="{!empWrap.emp.Name}" id="inputName" />
<apex:column value="{!empWrap.emp.Role__c}" id="inputRole" />
</apex:pageBlockTable>
<apex:pageBlockSection id="InfoId" columns="1" >
<apex:selectList size="1" value="{!SelectedValue}">
<apex:selectOptions value="{!statusOptions}"/>
</apex:selectList>
</apex:pageBlockSection>
<apex:commandButton value="Update" id="inputButton" action="{!updateRole}" />
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
顶点控制器
public class EmployeeSelectClassController13 {
public List<wrapEmployee> wrapEmployeeList {get; set;}
public List<Employee__c> empRecord {get;set;}
public string selectedValue { get;set; }
public List<SelectOption> statusOptions { get;set; }//TO get Roles from Employee
public EmployeeSelectClassController13(ApexPages.StandardController controller){
if(wrapEmployeeList == null){
wrapEmployeeList = new List<wrapEmployee>();
for(Employee__c empList:[Select Name,Role__c from Employee__c]){
wrapEmployeeList.add(new wrapEmployee(empList));
autorun();
}
}
}
public class wrapEmployee{
public Employee__c emp {get; set;}
public Boolean selected {get; set;}
public wrapEmployee(Employee__c e) {
emp = e;
selected = false;
}
}
//To get all Roles(PickList) from Employee Object
public void autoRun()
{
Schema.DescribeFieldResult statusFieldDescription = Employee__c.Role__c.getDescribe();
statusOptions = new list<SelectOption>();
for (Schema.Picklistentry picklistEntry : statusFieldDescription.getPicklistValues())
{
statusOptions.add(new SelectOption(pickListEntry.getValue(),pickListEntry.getLabel()));
}
}
public void updateRole()
{
}
}
public class EmployeeSelectClassController13{
公共列表wrapEmployeeList{get;set;}
公共列表记录{get;set;}
公共字符串selectedValue{get;set;}
公共列表状态选项{get;set;}//从员工获取角色
公共雇员SelectClassController 13(ApexPages.StandardController){
if(wrapEmployeeList==null){
wrapEmployeeList=新列表();
对于(员工列表:[从员工列表中选择姓名、角色]){
添加(新wrapEmployee(employist));
自动运行();
}
}
}
公共类包装工人{
公共雇员{get;set;}
已选择公共布尔值{get;set;}
公共包装员工(员工){
emp=e;
所选=假;
}
}
//从Employee对象获取所有角色(选取列表)
公共无效自动运行()
{
Schema.descripbeFieldResult statusFieldDescription=Employee__c.Role__c.GetDescripte();
statusOptions=新列表();
对于(Schema.Picklistentry Picklistentry:statusFieldDescription.getPicklistValues())
{
添加(新的SelectOption(pickListEntry.getValue(),pickListEntry.getLabel());
}
}
公共void updateRole()
{
}
}
像这样的东西?在Visualforce中不需要ID,除非您使用JavaScript。这完全可以在Apex中完成
public void updateRole(){
List toUpdate=新列表();
对于(wrapEmployee包装:wrapEmployeeList){
如果(换行选择){
wrap.emp.Role\uuu c=SelectedValue;
//wrap.selected=false;//现在可以选择取消选中复选框吗?
//或者在成功更新后,再次循环通过它们,然后取消锁定
toUpdate.add(wrap.emp);
}
}
更新toUpdate;
}