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