更新Primefaces数据表行

时间:2013-09-11 14:36:58

标签: jsf primefaces datatable

我想知道如何更新PrimeFaces Datatable行。这是我理解我的数据照片:

![1]:http://i.stack.imgur.com/N1jGz.png

我想为每一行选择他自己的状态,然后点击Save States按钮保存这些值。

这是我的xhtml页面代码:

<p:panel header="List Of Players For: #gameMB.selectedGame.teamCompetitionByGuestTeam}">
  <p:dataTable var="gam" value="#{gamePlayerMB.listGamePlayerGuest}">
    <p:column headerText="Name Lastname">
        <h:outputText value="#{gam.playerName}/>
    </p:column>
    <p:column>                                      
     <p:selectOneRadio value="#{gam.state}">
        <f:selectItem itemLabel="Titulaire" itemValue="Titulaire" />
        <f:selectItem itemLabel="Remplaçant" itemValue="Remplaçant" />
        <f:selectItem itemLabel="Blesse" itemValue="Blesse" />
        <f:selectItem itemLabel="Non retenu" itemValue="Non retenu" />
     </p:selectOneRadio>
    </p:column>
 </p:dataTable>
 <f:facet name="footer">
<p:commandButton value="Save States"
    action="#{gamePlayerMB.testRadioGuest}" />
</f:facet>
</p:panel>

提前致谢。

2 个答案:

答案 0 :(得分:1)

  1. 您应该使用简单的h:outputText作为要渲染的组件 球员的状态(Titulare,Blessé,......)
  2. editable="true"中使用带有p:selectOneMenu primefaces数据表 p:cellEditor来呈现可用选项列表。
  3. 这是一个head start链接。

答案 1 :(得分:0)

如果我理解你的话,你只想创建带编辑功能的表格。要解决这个问题,只需将表格和按钮传递给表格。

<h:form>
   <p:dataTable var="gam" value="#{gamePlayerMB.listGamePlayerGuest}">
      ...
   </p:dataTable>
   <p:commandButton value="Save States" action="#{gamePlayerMB.testRadioGuest}" />
</h:form>

在这种情况下,在“保存”按钮上单击所有表单将被发送到服务器(随您所有更改)。您的testRadioGuest方法可能看起来像这样

private void testRadioGuest(){
   for(Player player: listGamePlayerGuest){
      System.out.println(player);
   }
}

必须保存所有状态更改。