kidwon
kidwon

Reputation: 4504

Submit edited row in a DataTable (Primefaces JSF)

I am having a Data table which has controls for inline editing of a row by showing a <p:inputText/> of styleClass="iteminput" on the place of <h:outputText /> with a styleClass="itemcell"

However I am really facing difficulties of submitting the entered values in the input for the table row corresponding to var="sc" and updating my list array in the controller via the <p:commandButton id="submit" ..../> button.

I appreciate any help.

    <h:form>
        <p:dataTable value="#{SConfigsController.sConfigs}" var="sc" paginatorPosition="bottom" paginator="true" rows="12">

            <p:column headerText="id">
                <h:outputText value="#{sc.id}" styleClass="itemcell" />
                <p:inputText value="#{sc.id}" id="editId"  placeholder="..." style="display:none;"  styleClass="iteminput" />
            </p:column>

            <p:column headerText="name">
                <h:outputText value="#{sc.name}" styleClass="itemcell" />
                <p:inputText value="#{sc.name}" id="editName"  placeholder="..." style="display:none;"  styleClass="iteminput" />
            </p:column>

            <p:column headerText="edit">
                <p class="txtcent">
                    <p:commandButton onclick="peb.onedit(this)" onsuccess="" ajax="true" icon="ui-icon-pencil" title="Icon Only" />
                    <p:commandButton id="submit"  actionListener="#{SConfigsController.editConfig}"  ajax="true" icon="ui-icon-check" title="Icon Only" styleClass="btnok editbtn" style="display:none;"></p:commandButton>
                    <p:commandButton  ajax="true" icon="ui-icon-circlesmall-close" title="Icon Only" styleClass="btncancel editbtn" style="display:none;"/>
                </p>
            </p:column>
        </p:dataTable>
    </h:form>

Upvotes: 0

Views: 1542

Answers (1)

meyquel
meyquel

Reputation: 2214

You can use the row editor.

<p:dataTable editable="true" emptyMessage="No se encontraron elementos"
    rowIndexVar="rowIndex" id="tabla_listado" var="item" paginator="true"
    rows="12" rowKey="#{item.idGrupoEmpresarial}"
    value="#{comunMB.itemsGruposempresarialesUtil}">

    <f:facet name="header">
        <h:outputText value="Listado de Grupos Empresariales" />
    </f:facet>
    <p:ajax event="rowSelect" update=":form2:growl :form2:dialog"
        oncomplete="PF('detallesDialog').show()"
        listener="#{adminGruposEmpresariales.detallesGrupoEmpresarial}" />
    <p:ajax event="rowEdit" update=":form2:growl"
        listener="#{adminGruposEmpresariales.onEdit}" />
    <p:ajax event="rowEditCancel" update=":form2:growl" />
    <p:column headerText="Nombre">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{item.nombre}" />
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{item.nombre}" style="width:98%" />
            </f:facet>
        </p:cellEditor>
    </p:column>

    <p:column headerText="Sigla">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{item.descripcion}" />
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{item.descripcion}" style="width:98%" />
            </f:facet>
        </p:cellEditor>
    </p:column>
    <p:column style="width:20px">
        <p:rowEditor />
    </p:column>
</p:dataTable> 

Upvotes: 2

Related Questions