动态地将一行添加到primefaces dataTable

时间:2012-03-05 05:21:27

标签: jsf primefaces

我需要在点击按钮时向我的数据表添加一行 - “添加员工”。

数据表显示与bean中固定的Employees列表对应的记录。

我正在做的是,点击“添加员工”按钮,我将一个空的员工记录添加到empList。

有没有更好的方法呢?

感谢。

3 个答案:

答案 0 :(得分:4)

单击添加按钮时打开对话框或弹出窗口。然后填写必填字段(附加到员工对象。保存/提交时,将该对象添加到员工对象列表中。然后重新呈现数据表。 或者,您最初可以将空的员工对象添加到列表中。使用inputfields在数据表中显示它。在添加时,您将新员工添加到列表中并重新呈现列表。

答案 1 :(得分:4)

list_Recs是记录列表,显示在数据表中。

<p:dataTable id="myTable" value="#{myBean.list_Recs}" selectionMode="single" var="myTableVar" selection="#{myBean.currentRec}">
    <p:ajax event="rowSelect" listener="#{myBean.handleRowSelect}" update=":myForm:myPanel"/>
    <p:column>
        <f:facet name="header">
            <h:outputLabel value="Field 1" />
        </f:facet>
        <h:outputLabel value="#{myTableVar.Field1}"/>
     </p:column>

     <p:column>
         <f:facet name="header">
             <h:outputLabel value="Field 2" />
         </f:facet>
         <h:outputLabel value="#{myTableVar.Field2}" />
     </p:column>

     <f:facet name="footer">
         <p:commandButton value="New" action="#{myBean.prepareForInsert}" update=":myForm:myPanel"/>
     </f:facet>
</p:dataTable>

<h:panelGrid id="myPanel" columns="2" >
    <h:outputLabel value="Field 1"/>
    <p:inputText id="fld1" value="#{myBean.newRec.field1}" />
    <h:outputLabel value="Field 2"/>
    <p:inputText id="fld2" value="#{myBean.newRec.field2}" />
    <p:commandButton action="#{myBean.createAction}" value="Submit" update="myGrowl myTable" />
</h:panelGrid>

单击新建按钮时,在myBean的prepareForInsert例程中创建newRec的emty实例。因此 myPanel 在字段中填充空白。在提交时,将newRec添加到 由于 myTable 的更新,list_Recs和新记录显示在数据表中。 希望这会有所帮助。

答案 2 :(得分:3)

另一种选择是在数据表的页脚面中显示空员工,并在用户单击添加按钮时将其添加到列表中。通过这种方式,您可以确保只将正确填充的员工对象/实体添加到列表中。

相关问题