h:selectOneMenu值应该改变on:p:selectBooleanCheckbox

时间:2015-06-30 06:11:59

标签: jsf primefaces datatable

我的申请表有问题。

我有一个数据表,在一个selectBooleancheckbox中,selectonemenu包含项目("确认","拒绝","选择")并且有一个inputText。我需要编写代码,

如果选中了selectbooleancheckbox,则selectonemenu将获得值" Selected"并且inputText也变得可编辑。

这是我的xhtml代码:

<p:dataTable id="panel1"
             rendered="true"
             var="step2table"
             value="#{dtstep2_tab1.step2table}"
             editMode="cell"
             scrollable="true"
             selection="#{dtstep2_tab1.selectedrows}"
             rowKey="#{step2table.rs2_empname}"
             rowSelectMode="checkbox"
             rowStatePreserved="true">

    <p:column headerText="Select" id="hSelect" style="font-size:12px;width:60px;">
        <p:selectBooleanCheckbox id="Booleanchkbox" >

            <p:ajax listener="#{dtstep2_tab1.UpdateStatus}" update="panel1" />
        </p:selectBooleanCheckbox>
    </p:column>

    <p:column headerText="Status" id="hStatus" style="font-size:12px;width:100px;">
        <h:selectOneMenu id="cbo" value="#{step2table.rs2_status}" >
            <f:selectItem itemLabel="Confirmed" itemValue="Confirmed"></f:selectItem>
            <f:selectItem itemLabel="Selected" itemValue="Selected"></f:selectItem>
            <f:selectItem itemLabel="Rejected" itemValue="Rejected"></f:selectItem>
        </h:selectOneMenu>
    </p:column>

    <p:column style="font-size:12px;width:150px;">
        <f:facet name="header">
            <h:outputText value="Comments"></h:outputText>
        </f:facet>

        <h:inputText value="#{step2table.rs2_comments}" rendered="#{dtstep2_tab1.editable}"/>
    </p:column>
</p:dataTable>

并且在bean中我还有以下代码以及getter和setter方法。

public void UpdateStatus(AjaxBehaviorEvent event) {
    SelectBooleanCheckbox permit = (SelectBooleanCheckbox) event.getComponent();
    boolean checked = (Boolean) permit.getValue();

    if (checked) {
        setRs2_status("Selected");
        setEditable(true);
        setSelect(true);

    }
    else
        {
          setEditable(false);
          setSelect(false);
        } 

}

我不知道我在这里做错了什么。请指导我这个问题。

0 个答案:

没有答案