Salesforce更新更改事件的复选框值

时间:2014-01-10 22:20:30

标签: checkbox onchange visualforce apex

这里hidden_​​field__c是一个复选框。 如果用户在VFP中将数据库中的复选框更改为true,则它仍然显示为false,反之亦然 有人可以指出我的代码中缺少什么。 这是我的代码。

----------- controller --------------

public class dataTableCon {

    List<Account> accounts;

    public List<Account> getAccounts() {

        if(accounts == null) accounts = [select name, owner.name,hidden_field__c from account limit 10];

        return accounts;

    }

}

--------- VFP -------------

<apex:page controller="dataTableCon" id="page">

    <apex:form >

    <apex:pageBlock id="theBlock">

    <apex:dataTable value="{!accounts}" var="account" id="theTable" rowClasses="odd,even" styleClass="tableClass">

        <apex:column >
            <apex:facet name="header">Private</apex:facet>
            <apex:inputCheckbox value="{!account.hidden_field__c}" >
             <apex:actionSupport event="onchange" rerender="theBlock"/>
           </apex:inputCheckbox>           
        </apex:column>


        <apex:column >
            <apex:facet name="header">Name</apex:facet>
            <apex:outputText value="{!account.name}"  >
        </apex:column>

        <apex:column >
            <apex:facet name="header">Owner</apex:facet>
            <apex:outputText value="{!account.owner.name}"  >
        </apex:column>

    </apex:dataTable> 

    </apex:pageBlock>
    </apex:form>
</apex:page>  

1 个答案:

答案 0 :(得分:0)

您需要有一些实际保存更改的机制。尝试在&lt; apex:form&gt;中添加<apex:commandButton>,然后让该按钮调用保存的操作。

顶点:

public PageReference save()
{
  update accounts;
}

Visualforce:

<apex:commandButton value="Save" action="{!save}"/>