我有一个由两列组成的表,columnA和columnB(参见下面的源代码)。我想要做的是,只要该列中的任何值发生更改,就重新渲染columnB中的所有单元格。
我尝试了很多东西,但我没有让它发挥作用。所以,我不得不重新整理整个桌子。
reRender="my-form:myTable"
有趣的是,在表格的标题部分
reRender="myTable:columnB"
完全按照我想要的方式工作(我不明白它是如何工作的。)
有人可以告诉我如何重新渲染数据表中的特定列吗?
我将不胜感激。
亲切的问候
Fuat
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
template="/layout/template.xhtml">
<ui:define name="body">
<rich:panel>
<a4j:form id="my-form">
<s:validateAll>
<rich:dataTable
id="myTable"
value="#{myManager.items}"
var="item">
<rich:column id="columnA">
<f:facet name="header">
<s:div>
<h:inputText value="#{myManager.allRowsColumnA}">
<a4j:support
event="onchange"
action="#{myManager.changeColumnAForAllRows}"
reRender="myTable:columnA"
ajaxSingle="true" />
</h:inputText>
<br />
<h:outputText value="Column A" />
</s:div>
</f:facet>
<h:inputText
id="inputColumnA"
value="#{item.columnA}"
required="true">
</h:inputText>
</rich:column>
<rich:column id="columnB">
<f:facet name="header">
<s:div>
<h:inputText value="#{myManager.allRowsColumnB}">
<a4j:support
event="onchange"
action="#{myManager.changeColumnBForAllRows}"
reRender="myTable:columnB"
ajaxSingle="true" />
</h:inputText>
<br />
<h:outputText value="Column B" />
</s:div>
</f:facet>
<h:inputText
id="inputColumnB"
value="#{item.columnB}"
valueChangeListener="#{myManager.columnBChanged}"
required="false">
<a4j:support
event="onchange"
reRender="my-form:myTable"
ajaxSingle="false" />
</h:inputText>
</rich:column>
</rich:dataTable>
</s:validateAll>
</a4j:form>
</rich:panel>
</ui:define>
</ui:composition>