根据来自另一个数据表的记录的复选框选择填充数据表

时间:2012-04-19 06:44:23

标签: java jsf checkbox datatable primefaces

我想用最后检查过的数据库的角色填充数据表的角色。我该如何实现呢?

public class Database implements Serializable {
    private List<Role> roles;
    private String name;
    private boolean selected;
    ...
}

public class Role implements Serializable {
    private String name;
    ...
}  

data.xhtml 看起来像这样

...
<p:dataTable id="databases" var="database" value="#{dataBean.databases}" >  
    <p:column>  
        <p:selectBooleanCheckbox value="#{database.selected}">  
            <p:ajax update="roles, databases" immediate="true" />  
        </p:selectBooleanCheckbox>  
    </p:column>  
    <p:column headerText="Databases">  
        <h:outputText value="#{database.name}" />  
    </p:column>  
</p:dataTable>  

<p:dataTable id="roles" var="role" value="#{dataBean.roles}" >                
    <p:column headerText="Roles">
        <h:outputText value="#{role.name}" />
    </p:column>
</p:dataTable>

1 个答案:

答案 0 :(得分:1)

<强> data.xhtml

<p:dataTable id="databases" var="database" value="#{dataBean.databases}" > 

<p:selectBooleanCheckbox value="#{database.selected}">  
    <f:ajax execute="@this" listener="#{dataBean.updateRoles}" />
    <f:attribute name="selRec" value="#{database}" />
</p:selectBooleanCheckbox> 

databean

...

public void updateRoles(AjaxBehaviorEvent event) {  
    //database is theobject in the current row 
    Database database = (Database) event.getComponent().getAttributes().get("selRec");       
}   
...