Richfaces tabla de datos - añadir una nueva fila sin rerendering toda la tabla de datos en el lado del cliente

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

Pregunta

La nueva fila se puede agregar a la colección del lado del servidor asociado a un evento de acción de un botón de comando o un enlace de comandos, y la fila recién agregada se puede visualizar en el cliente si toda la tabla es re- dictada .

¿Es posible mostrar la fila que acaba de agregar en el lado del cliente sin necesidad de actualizar toda la tabla de datos con las teclas prestación parcial con la ayuda de AjaxKeys o algo?

Gracias de antemano por cualquier ayuda:)

¿Fue útil?

Solución

Hay que regenere tabla de datos entera si va a agregar una nueva fila. AjaxKeys pueden ser útiles si desea regenere las columnas existentes.

Otros consejos

Me interesa también conocer una respuesta para su pregunta, Puedo lograr que el uso de JavaScript tradicional, pero cuando se utiliza rica:. Tabla de datos no puedo añadir nuevas filas en el cliente

Pero hizo que el uso de ajax llamadas a las funciones del servidor, esta función añadir nueva fila vacía a la Lista dataTable y hacen los ricos:. Tabla de datos de nuevo

mi página de 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>

y en el grano 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);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top