我正在尝试实现一个dataTable,其中包含(其中包含)带有textInput的列,因此我可以修改bean中的字符串值。我的问题是bean没有正确更新,所以这是我的代码的一部分:
<p:scrollPanel style="height:625px" mode="native">
<p:dataTable value="#{oaBean.documentos}" var="documento"
rowIndexVar="rowIndexVar" rowKeyVar="documentoKey" id="documentoList"
widgetVar="myTableWidget" paginator="true" rows="50"
emptyMessage="#{messages['norecords']}">
<f:facet name="header">
<h:outputText value="#{messages['documents']}" />
</f:facet>
<p:column style="width:1px;margin:0;padding:0;" headerText="#">
<h:outputText value="#{rowIndexVar+1}"
style="font-size:0.75em;margin:0;padding:0;" />
</p:column>
//lots of another columns
<p:column headerText="#{messages['documento.orden']}"
style="width:25px; text-align: center" id="columnOrden" widgetVar="columnOrden">
<p:inputText id="ordenDocumento" value="#{documento.orden}"
disabled="#{documento.eliminado}" style="font-size:0.9em" size="2"
validator="floatValidator">
</p:inputText>
</p:column>
</p:dataTable>
</p:scrollPanel>
问题是,当控件返回bean时,orden
的值不会更新,我总是有旧的值。我也尝试为change
事件添加ajax监听器,它似乎工作正常,但如果我改变例如5行,其中至少有一行保持旧值,所以我的问题是:是dataTables和textInputs有任何已知问题吗?我的代码有问题吗?
任何帮助都会非常感激,谢谢你们。
更新的
对不起,我忘了提供一些信息。首先,我正在使用Mojarra 2.1.5,PrimeFaces 3.4.2和Facelets并在Tomcat 7中运行。其次,可能最重要的是,上面提供的代码通过选项卡包含在更大的xhtml中:
<ui:define name="body">
<rich:panel styleClass="createFormPanel">
<h:panelGroup layout="block" style="margin:0 auto;width:100%;" id="principalPanel">
<div style="height: 665px"><p:tabView id="tabs" widgetVar="tabsView" activeIndex="#{oaBean.activeTab}">
<p:tab id="tab5" title="#{messages['oa.tab.contenido']}">
<h:form id="formTab2">
<ui:include src="/pages/oa/tabContenido.xhtml" />
</h:form>
</p:tab>
</p:tabView></div>
</h:panelGroup>
</rich:panel>
</ui:define>
在这种情况下,tabContenido.xhtml
是包含数据表定义的页面。没有包含java代码,因为它只是一个带有getter和setter值的bean。如果您需要更多信息,请告诉我
问候。
答案 0 :(得分:1)
尝试将ajax事件添加到列并更新孔表,如下所示:
<p:column headerText="#{messages['documento.orden']}"
style="width:25px; text-align: center" id="columnOrden">
<p:inputText id="ordenDocumento" value="#{documento.orden}"
disabled="#{documento.eliminado}" style="font-size:0.9em" size="2"
validator="floatValidator">
<p:ajax event="change" update="documentoList" />
</p:inputText>
</p:column>