我在PrimeFaces 5.0中使用JSF 2.2。我有一个带有单元格编辑的dataTable。
当我设置editMode =" cell"时,我在对话框中有dataTable,编辑后的输出文本没有出现,但是当我把数据表编辑放在对话框外面时,当我检查数据表的元素时它是空的,但如果我将数据表编辑器放在对话框外面,那么outPut元素就不是空的
===>当我点击编辑单元格时,输入具有新值但outputext仍然具有旧值
===>所以这里是我的页面
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<f:view>
<h:form id="lotRecepForm">
<p:dataTable value="#{lotRecpBean.liste}"
var="lotRecp"
id="tbl">
<p:column>
<f:facet name="header">
<span class="nomColonneTab">Lot Réception</span>
</f:facet>
<h:outputText value="#{lotRecp.codeLotReception}"/>
</p:column>
<p:column>
<f:facet name="header">
<span class="nomColonneTab">Entrant</span>
</f:facet>
<h:outputText value="#{lotRecp.entrant.designation}"/>
</p:column>
<p:column>
<f:facet name="header">
<span class="nomColonneTab">Date Réception</span>
</f:facet>
<h:outputText value="#{lotRecp.dateReception}">
<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<span class="nomColonneTab">Quantite Livrée</span>
</f:facet>
<h:outputText value="#{lotRecp.quantiteLivree}"/>
</p:column>
<p:column headerText="Action" exportable="false" styleClass="nomColonneTab">
<p:commandButton icon="ui-icon-arrowrefresh-1-w"
update=":content:modif"
oncomplete="PF('w_edit').show();" styleClass="buttonAction">
<f:setPropertyActionListener value="#{lotRecp}" target="#{lotRecpBean.currentLotReception}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:dialog id="modif" width="80%" widgetVar="w_edit" modal="true" >
<p:tabView >
<p:tab title="Controle de Réception ">
<h:form>
<h:panelGrid>
<p:dataTable id="data1" value="#{normeMicroEBean.listOfNorme(lotRecpBean.currentLotReception.entrant)}"
var="item" editable="true" editMode="cell" >
<p:column headerText="Valeur Controle" styleClass="ui-editable-column">
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{item.valeurControle}" /></f:facet>
<f:facet name="input"><p:inputText id="modelInput" value="#{item.valeurControle}" style="width: 50%"/></f:facet>
</p:cellEditor>
</p:column>
<p:column width="15%" headerText="Testeur">
<p:cellEditor >
<f:facet name="output"><h:outputText value="#{item.testeurCR.nom}" /></f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{item.testeurCR.nom}" style="width:50%">
<f:selectItems value="#{personnelBean.liste}" var="perso" itemLabel="#{perso.nom}" itemValue="#{perso}" />
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
</h:panelGrid>
<h:form>
</p:tab>
<p:tab title="Info lot de Réception">
<h:form>
<p:panelGrid id="idPanel">
<p:row>
<p:column><p:outputLabel value="QuantiteLivree:" for="quantiteLivree" /></p:column>
<p:column><p:inputText id="quantiteLivree" value="#{lotRecpBean.currentLotReception.quantiteLivree}" title="QuantiteLivree" /></p:column>
<p:column><p:outputLabel value="QuantiteRecue:" for="quantiteRecue" /></p:column>
<p:column><p:inputText id="quantiteRecue" value="#{lotRecpBean.currentLotReception.quantiteRecue}" title="QuantiteRecue" /></p:column>
<p:column><p:outputLabel value="NumBonLivraison:" for="numBonLivraison" /></p:column>
<p:column><p:inputText id="numBonLivraison" value="#{lotRecpBean.currentLotReception.numBonLivraison}" title="NumBonLivraison" /></p:column>
</p:row>
</p:panelGrid>
<div>
<p:commandButton action="#{lotRecpBean.update()}" value="Enregistrer" styleClass="button"
style="float: right" oncomplete="PF('lotRecepTable').filter();PF('w_edit').hide();" />
</div>
</h:form>
</p:tab>
</p:tabView>
</p:dialog>
答案 0 :(得分:1)
<p:dataTable id="data1" value="#{normeMicroEBean.listOfNorme}"
var="item" editable="true" editMode="cell" >
我在托管bean中创建一个列表,然后在按钮中执行该方法以填充在托管bean中创建的列表。谢谢你的回复