Таблица данных PrimeFaces не обновляется после асинхронного запроса частичной отправки с обновлением тега? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь обновить dataTable после удаления элемента из dataTable, но он не работает должным образом. Мне нужно обновить страницу, чтобы обновить dataTable или, после многих нажатий на кнопку «Удалить», таблица снова отображается без необходимости вручную обновлять всю страницу.

Пример удаляемой записи! enter image description here

Если я нажму на удаление, оно действительно будет удалено, однако dataTable не будет повторно отображаться, пока я не обновлю страницу.

Запись удаляется после обновления всей страницы или многократного нажатия кнопки удаления enter image description here

В соответствии с обновлением тега документирования, необходимо частично обновить страницу.

https://www.primefaces.org/docs/vdl/3.5/primefaces-p/menuitem.html

[! [Введите описание изображения здесь] [3]] [3]

Это мой код, все кажется правильным, но, возможно, я что-то упустил.

 <h:form id="form">
        <p:dataTable id="studentsDataTable"
                     value="#{studentsController.students}"
                     var="student"
                     rowKey="#{student.username}"
                     selection="#{studentsController.studentSelected}"
                     selectionMode="single">

            <!--Header-->
            <f:facet name="header">
                Spanish Academy : Students' List
                <p:button value="Add Student" outcome="new_student" />
            </f:facet>

            <p:column headerText="Username">
                <h:outputText value="#{student.username}" />
            </p:column>
            <p:column headerText="Firstname">
                <h:outputText value="#{student.firstname}" />
            </p:column>
            <p:column headerText="Lastname">
                <h:outputText value="#{student.lastname}" />
            </p:column>
            <p:column headerText="Edit" style="width:50px">

            </p:column>
            <!--Footer-->
            <f:facet name="footer">
                <p:commandButton value="Delete" process="@form" update="form:studentsDataTable"  actionListener="#{studentsController.deleteStudent}" icon="ui-icon-close"/>
                <p:spacer height="5px;"/>
            </f:facet>
        </p:dataTable>
    </h:form>

Есть идеи, ребята?

Заранее спасибо.

1 Ответ

0 голосов
/ 04 июля 2018

Наконец, после того, как я искал много способов решения проблемы, следуя нескольким источникам и советам от хорошо намеченных людей, я решаю ее, используя Prime Faces Collector.

Витрина для коллектора DataTable

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

Я надеюсь, что это может помочь кому-то, у кого были мои проблемы.

Приложение JavaEE Git Repo с JSF и PrimeFaces

...