Wie aktualisiert Primefaces datatable jedes mal, wenn die Seite heruntergeladen wird?

Ich habe nur <p:dataTable/>. Wenn ich eine neue Zeile an die Tabelle in einer anderen Seite, wird die Tabelle nicht aktualisiert. RmaBean ist managedBean Gültigkeitsbereich Sitzung. Irgendwelche Ideen?

<h:form id="mainMenuForm">        

            <p:dataTable id="dataTable" 
                         var="case" 
                         value="#{RmaBean.rmaModel}" 
                         widgetVar="rmaTable" 
                         editable="true" 

                         rows="10" paginator="TRUE" emptyMessage="No items found with given criteria.">

...

<p:column></p:column>
        <p:column></p:column>
        <p:column><p:commandButton action="#{MainController.talletaUusiRma}" value="#{bundle.newRma_tallenna}" immediate="true"  ajax="false" style="width: 220px;"/></p:column>
    </p:row>

Wenn ich ein neues Objekt hinzuzufügen, um die Tabelle, die ich aktualisieren Sie einfach die rmaModel jedes mal und ich selbst prüfen, ob die Liste ist eins mehr als vorher, und es gibt das neue Objekt. Die Datentabelle zeigt noch die alten Daten, ohne das neue Objekt, warum?

--------ERSTELLUNG DES NEUEN RMA-------------

public String prepareNewRma() {
    current = new Rma();
    current.setUser("");
    return "newRma";
}

--------ABRUFEN VON DATEN AUF DEN NEUEN RMA-MIT SERIENNUMMER------

public String haeTiedotSarjanrolla() {
    log.info("sarjanro=" + current.getSarjanro());
    System.out.println("---------------->sarjanro=" + current.getSarjanro());

    Sarjanumerot s = helper.getSerialInfo(current.getSarjanro());

    if (s != null) {
        current.setAn8(s.getAn8());
        current.setDsc1(s.getDsc1());
        current.setDsc2(s.getDsc2());
        current.setSarjanro(s.getId().getLotn());
        current.setTuotenro(s.getId().getLitm());
    }
    return "newRma";
}

--------SPEICHERN VON NEUEN RMA---------------

public String talletaUusiRma() {

    current.setCreated(new Timestamp(System.currentTimeMillis()));
    helper.tallennaRma(current);
    rmaNumbers = null;

   RmaBean papu = (RmaBean) JsfUtil.findBean("rmapapu");

   papu.updateTable();
    return "mainMenu";
}

HELFER:

 public void tallennaRma(Rma current) {
        try {
            Session session = HibernateUtil.getAsekorjausSessionFactory().getCurrentSession();
            session.beginTransaction();
            session.saveOrUpdate(current);
            session.getTransaction().commit();
        } catch (Exception e) {
            log.debug(e.getMessage());
                        JsfUtil.addErrorMessage(ResourceBundle.getBundle("resources/Bundle").getString("editRma_err_updateError"));
        }

---------AKTUALISIEREN des MODELLS UND TABELLE in RmaBean-----------

public void updateTable(){

    System.out.println("updateTableupdateTableupdateTable");
    rmaModel.setWrappedData(rmaModel.getUpdatedList());
    System.out.println("1111111..........");
    List<Rma> rmat = rmaModel.getUpdatedList();
    System.out.println("22222222.......");
    Iterator iter = rmat.iterator();
    System.out.println("------------------------>PITUUS: " +rmat.size());
    while (iter.hasNext()) {
        Rma t = (Rma) iter.next();
        System.out.println("t.getRma()NUMERO------->" +t.getRma());


    }

    RmaDataModel newRMAModel = new RmaDataModel(rmat); 
    rmaModel = newRMAModel;
}

Sami

  • könnte Sie erweitern Ihre Frage mit der Methode, die fügt ein neues element zu der Liste? Bitte korrigieren Sie die code-Stück oben, entweder poste den ganzen code der Methode oder einfach nur die Signatur der Methode und mark fehlender code-Stücke.
  • Ist es jetzt ok? Ich war so müde, Letzte Nacht, dass ich versuchte schnell sein 🙂
InformationsquelleAutor Sami | 2012-11-06
Schreibe einen Kommentar