JSF- datatable, tabela nie odświeża się automatycznie

0

Uczę się JSF i napotkałem na błąd w mojej aplikacji. Mam tabelę, z której chcę usuwać rekordy. Funkcja ta działa, jednak żeby zobaczyć efekt muszę odświeżyć stronę. Co zrobić aby strona odświeżała się automatycznie?

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form id="form">
        <p:dataTable value="#{customerBean.customers}" var="customer" editable="true">

            <p:column headerText="Id">
                <h:outputText  value="#{customer.id}"/>
            </p:column>

            <p:column headerText="Imie">
                <h:outputText  value="#{customer.firstName}"/>
            </p:column>

            <p:column headerText="Nazwiko">
                <h:outputText  value="#{customer.lastName}"/>
            </p:column>

            <p:column headerText="tel">
                <h:outputText  value="#{customer.phoneNumber}"/>
            </p:column>

            <p:column headerText="data">
                <h:outputText  value="#{customer.date}"/>
            </p:column>

            <p:column headerText="komentarz">
                <h:outputText  value="#{customer.comment}"/>
            </p:column>

           <p:column headerText="del">
                 <p:selectBooleanCheckbox value="#{customer.selected}"/>
            </p:column>

        </p:dataTable>
             <p:commandButton value="delete" actionListener="#{customerBean.delete()}" update="form" />
            </h:form>
    </h:body>
</html>
0

Próbowałeś dać id="tabelka" do datatable i w commandButton dać update="tabelka" ??

Tutaj jest podobny przykład tylko, że z menu kontekstowym.

http://www.primefaces.org/sho[...]a/datatable/contextMenu.xhtml

0

Niestety nie pomogło.
Mógłby mi ktoś wyjaśnić czym jest forma? Wydaje mi się, ze nie potrafię tego zrozumieć i w tym tkwi mój porblme

0

Masz literówkę napisałeś:

<p:commandButton value="delete" actionListener="#{customerBean.delete()}" update="form" />

Powinno być:

<p:commandButton value="delete" actionListener="#{customerBean.delete()}" update=":form" />

Jeśli nadasz datatble id będziesz mógł odświeżyć tylko część formularza wedug notacji :idFormularza:idTabelki (mniejszy request AJAX = lepsza wydajność).

Pozdrawiam,

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0