Динамическое добавление строки к файлам dataTable

Мне нужно добавить строку к моему datatable по щелчку кнопки - " Добавить сотрудника ".

В файле данных отображаются записи, соответствующие фиксированному списку сотрудников в компоненте.

Что я делаю, нажав кнопку " Добавить сотрудника ", я добавляю пустую запись Employee в empList.

Есть ли лучший способ сделать это?

Благодарю.

Ответ 1

Открыв диалог или всплывающее окно, нажмите кнопку "Добавить". Затем добавьте обязательные поля (прикрепленные к объекту сотрудника, а при сохранении/отправке добавьте этот объект в список объектов сотрудника), а затем повторно введите данные, или вы можете сначала добавить пустой объект emploee в свой список. datatable with inputfields. При добавлении вы добавляете нового сотрудника в список и переписываете список.

Ответ 2

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>

При нажатии кнопки New создайте экземпляр emty newRec в подпрограмме prepareForInsert myBean. Так что myPanel заполняется пробелами в полях. В поле "Отправить" добавьте newRec в list_Recs, и новая запись будет перенесена в таблицу данных из-за обновления на myTable. Надеюсь это поможет.

Ответ 3

Другой вариант - показать пустой сотрудник на грани нижнего колонтитула вашего файла данных и добавить его в свой список, если пользователь нажмет кнопку добавления. При этом вы можете убедиться, что только правильно заполненные объекты/объекты сотрудника добавлены в ваш список.