【问题标题】:Submit edited row in a DataTable (Primefaces JSF)在 DataTable (Primefaces JSF) 中提交已编辑的行
【发布时间】:2014-05-28 10:50:06
【问题描述】:

我有一个数据表,它通过在 <h:outputText /> 的位置上显示 styleClass="iteminput"<p:inputText/>styleClass="itemcell" 来控制行的内联编辑

但是,我确实面临着在输入中为对应于var="sc" 的表格行提交输入值并通过<p:commandButton id="submit" ..../> 按钮更新控制器中的列表数组的困难。

感谢您的帮助。

    <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>

【问题讨论】:

  • 当您编辑p:inputText 中的值并在提交之前关注另一个字段然后提交时会发生什么?变化有影响吗?
  • 我猜没有。实际上,我对提交任何东西的概念都有疑问。方法SConfigsController.editConfig 被触发,但我不知道如何提交值并更新控制器中的sConfigs 数组列表。也许看起来很蹩脚,但我对 JSF 的经验真的很少
  • 尝试使用 Chrome 的元素检查或 Firebug 检查发送到服务器的请求,并查看您的浏览器在请求中写入的内容。
  • 这确实很有帮助,它在请求中发送了新值
  • 你可以使用行编辑器...

标签: java jsf primefaces


【解决方案1】:

您可以使用行编辑器。

<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> 

【讨论】:

  • 感谢您的想法。
猜你喜欢
  • 2015-01-02
  • 2014-04-12
  • 2013-10-21
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多