Динамическое добавление строки в простые числа dataTable - PullRequest
10 голосов
/ 05 марта 2012

Мне нужно добавить строку в таблицу данных по нажатию кнопки - " Добавить сотрудника ".

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

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

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

Спасибо.

Ответы [ 3 ]

4 голосов
/ 05 марта 2012

Либо вы открываете диалоговое окно или всплывающее окно при нажатии кнопки добавления. Затем заполните необходимые поля (прикрепленные к объекту сотрудника. И при сохранении / отправке вы добавляете этот объект в список объектов сотрудника. И повторно отображаете таблицу данных. Или вы можете изначально добавить пустой объект emploee в свой список. Показываем это в datatable с полями ввода. При добавлении вы добавляете нового сотрудника в список и обновляете список.

4 голосов
/ 12 апреля 2012

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 , создайте пустой экземпляр newRec в подпрограмме prepareForInsert myBean. Так что myPanel заполнено пробелами в полях. При отправке добавьте newRec в list_Recs и новая запись отображается в таблице данных из-за обновления myTable . Надеюсь, это поможет.

3 голосов
/ 05 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...