Columnas editables en un datatable
Podemos editar columnas específicas en un datatable y luego actualizar los registros de la tabla a través de los ManagedBeans data utilizados con DataClassG y JSFGenerator
- Establecer editable=”true” y editMode=”cell”
<p:dataTable var="var" value="#{tiempodedicacionData.tiempodedicacionlist}" paginator="true"
rows="20"
editable="true" editMode="cell"
selectionMode="single"
rowKey="#{var.idtiempodedicacion}"
selection="#{tiempodedicacionData.selectedTiempodedicacion}"
widgetVar= "tiempodedicacionTable"
filteredValue="#{tiempodedicacionData.filteredTiempodedicacion}"
id="datatableTiempodedicacion"
>
- En la columna colocamos <p:cellEditor>
<p:column headerText="#{mensajes.tiempodedicacion}" style="width:25%">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{var.tiempodedicacion}" /></f:facet>
<f:facet name="input"><p:inputText value="#{var.tiempodedicacion}" style="width:96%" label="#{mensajes.tiempodedicacion}"/></f:facet>
</p:cellEditor>
</p:column>
Colocamos el boton
<f:facet name="footer">
<p:commandButton actionListener="#{tiempodedicacionData.updateLista()}" title="#{mensajes['boton.editar']}"
oncomplete=" handleSubmitRequest(xhr, status, args, 'tiempodedicacionDialogInsert','newUserForm');"
ajax="false" icon="ui-icon-disk" />
</f:facet>
- En el Data recorro la lista de objetos para actualizarlos
public Boolean updateLista() {
try {
for (Tiempodedicacion t : tiempodedicacionlist) {
if (t.getTiempodedicacion() < 0) {
JSFUtil.addSuccessMessage(archivoRecursos.getRb().getString("label.tiempodedicacionnonulo"));
return false;
}
}
Integer totalupdate = 0;
for (Tiempodedicacion t : tiempodedicacionlist) {
tiempodedicacionController.setTiempodedicacion(t);
if (tiempodedicacionController.update()) {
totalupdate++;
} else {
JSFUtil.addWarningMessage(archivoRecursos.getRb().getString("msg.noupdate") + tiempodedicacionController.getMensaje());
}
}
if (totalupdate != tiempodedicacionlist.size()) {
JSFUtil.addWarningMessage(archivoRecursos.getRb().getString("msg.noupdate"));
} else {
JSFUtil.addSuccessMessage(archivoRecursos.getRb().getString("msg.edited"));
}
} catch (Exception ex) {
JSFUtil.addErrorMessage("updateLista()" + ex.getLocalizedMessage());
}
return false;
}
Comments
can you give us a ZIP because this tutorial don't work for me
can you give us a ZIP because this tutorial don't work for me