RichFaces DataTable - l'aggiunta di una nuova riga senza rerendering tutta la DataTable sul lato client

StackOverflow https://stackoverflow.com/questions/4552491

Domanda

La nuova riga può essere aggiunto alla raccolta lato server associato a un evento azione di un pulsante di comando o un collegamento di comando, e la riga appena aggiunto può essere visualizzato sul client se l'intera tabella è ri- reso .

E 'possibile visualizzare la riga appena aggiunta sul lato client senza la necessità di aggiornare l'intero datatable , con il rendering parziale , con l'aiuto di AjaxKeys o qualcosa del genere?

Grazie in anticipo per qualsiasi aiuto:)

È stato utile?

Soluzione

Devi rerender intero DataTable se si sta aggiungendo una nuova riga. AjaxKeys può essere utile se si desidera rerender colonne esistenti.

Altri suggerimenti

Sono molto interessato anche di conoscere una risposta per la tua domanda, Posso ottenere che l'utilizzo di tradizionali Javascript, ma quando uso ricco:. DataTable non posso aggiungere nuove righe sul client

Ma ho fatto che l'utilizzo di ajax chiamate alle funzioni del server, questa funzione aggiungere nuova riga vuota a elenco dataTable e rendere i ricchi:. Nuovo DataTable

mia pagina xhtml

<rich:column>
<f:facet name="header"><h:outputLabel value="#{msgs.notes}" style="font-size:15px;"/> </f:facet>
<h:inputText    value="#{line.notes}" >
    <a4j:ajax   event="blur" 
    execute="datatable" 
    render="datatable" 
    immediate="true" 
    listener="#{saleBacking.addNewLineInDataTable}"
    oncomplete="document.getElementById('myform:datatable:#{saleBacking.view_no_counter-1}:line').focus();"/>
</h:inputText>
</rich:column>

e il fagiolo maneged

public void addNewLineInDataTable(AjaxBehaviorEvent event)
    {
        SaleLine saleLine = new SaleLine();
        saleLine.setId(salesLineslist.isEmpty() ? 1 : salesLineslist.get(salesLineslist.size() - 1).getId() + 1);
        salesLineslist.add(saleLine);
        saleLine = new SaleLine();
        saleLine = new SaleLine();
        saleLine.setSaleId(sale);
        saleLine.setViewNo(++view_no_counter);
        saleLine.setDiscount(0d);
        saleLine.setItemPrice(0d);
        salesLines.add(saleLine);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top