【问题标题】:primefaces p:datable editMode="cell"primefaces p:数据表编辑模式=“单元格”
【发布时间】:2017-07-02 17:21:50
【问题描述】:

我遇到了 primefaces、datatable、editMode = "cell" 的问题

我有一个数据表,可以使用 editMode = "cell" 进行编辑。如果我修改了一个单元格并立即单击“验证”按钮(不离开单元格),则该按钮不起作用并且该单元格仍处于编辑模式,如果我再次单击“验证”按钮,则按钮有效。

你可以在这里查看我的数据表:

        <p:dataTable var="fact" id ="FactureTable" 
                value="#{monBean.factureDataModel}"
                            editable="true" rowKey="#{fact.id.factNumero}" 
                            emptyMessage="#{fichierMessage['DATATABLE.NORECORDSFOUNS']}" 
                            scrollable="true" scrollHeight="100" editMode="cell" selection="#{monBean.factureSelectionner}" >

                            <p:ajax event="rowSelectRadio"  process="@this" listener="#{monBean.selectionnerFacture}" update=":#{p:component('InterventionTable')}"/>
                            <p:column selectionMode="single" style="width:10px;">
                            </p:column>

                            <p:column headerText="#{messages['Facture.numero']}" >
                                <p:cellEditor >
                                    <f:facet name="output">
                                        <h:outputText value="#{fact.id.factNumero}" />
                                    </f:facet>
                                    <f:facet name="input">
                                        <p:inputText  value="#{fact.id.factNumero}" disabled="#{fact.griserCode}"
                                            style="width:96%" />
                                    </f:facet>
                                </p:cellEditor>
                            </p:column>

                            <p:column headerText="#{messages['Facture.date']}">
                                <p:cellEditor>
                                    <f:facet name="output">
                                        <h:outputText value="#{fact.factDate}">
                                          <f:convertDateTime type="date" dateStyle="short"
                                            pattern="dd/MM/yyyy" />
                                    </h:outputText>
                                    </f:facet>
                                    <f:facet name="input">
                                        <p:inputMask  maxlength="12" style="width:96px;" value="#{fact.factDate}" mask="99/99/9999"  disabled="#{fact.griserCode}">
                                       <f:convertDateTime type="date"  dateStyle="short" pattern="dd/MM/yyyy" />
                                       <p:ajax process="@this" listener="#{monBean.affectationMoisEtExercice(fact)}" update=":#{p:component('FactureTable')},:#{p:component('message')}"/>
                                    </p:inputMask>
                                    </f:facet>
                                </p:cellEditor>
                            </p:column>
        </p:datatable>

【问题讨论】:

  • 这篇文章中的解决方案对我不起作用
  • “验证”按钮不在数据表中
  • 您是否尝试在您的 p:inputText 和 p:inputMask 字段中添加 p:ajax?
  • 我做了: 但它不工作

标签: primefaces datatable tablecelleditor editmode


【解决方案1】:

我使用这个解决方案:

我不在 p:dataTable 中使用 editMode="cell" 我在 p:dataTable 中通过 editable="false" 更改 editable="true"

我不使用 p:细胞编辑器 f:facet name="输出"

只是在 p:column 中我使用 p:inputText,p:inputMask...,


Pour éviter les problème de l'Ajax dans les "datatable" éditables, merci suivre les instruction suivante:

l'attruibut editMode="cell" ne doit pas figurer dans le tag p:dataTable 转换器可编辑=“真”与可编辑=“假”

ne pas utiliser les 标签: p:细胞编辑器 f:facet name="输出"

Un simple tag va être utilisé pour l'affichage et la modify des donnée exple (p:inputText,p:inputMask...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2012-02-21
    • 2013-08-22
    • 2014-01-20
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多