2017-02-14 2 views
0

J'ai un problème avec primefaces, DataTable, editMode = "cellule"primefaces p: datable editMode = "cellule"

J'ai un datatable, modifiable avec editMode = "cellule". Si je modifie une cellule et que je clique immédiatement sur le bouton "valider" (sans quitter la cellule), le bouton ne fonctionne pas et la cellule est toujours en mode édition, et si je clique à nouveau sur le bouton "valider" Button fonctionne.

Ici vous pouvez voir mon dataTable:

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

dupliquer de http://stackoverflow.com/questions/30384560 – Spartan

+0

la solution dans ce le message ne fonctionne pas pour moi –

+0

le bouton "valider" est hors de la date –

Répondre

0

J'utilise cette solution:

Je n'utilise editMode = "cellule" en p: dataTable je changer modifiable = "true" par éditable = "false" dans p: dataTable

Je ne me p: cellEditor f: facette name = "sortie"

simplement p: colonne I utiliser p: inputText, p: MasqueSaisie ...,


Pour les EVITER de l'Ajax Problème dans les "datatable" éditables, merci les Suivre instruction suivante:

l'attruibut editMode = "cellule" ne pas Doït Figurer Dans le tag p: dataTable changeur modifiable = "true" par éditable = "false"

ne les balises PAS UTILISER: p: cellEditor f: facette name = "output"

Une étiquette simple est utilisée pour l'affichage et la modification des données exple (p: inputText, p: inputMask ...)