columnA と columnB の 2 つの列で構成されるテーブルがあります (以下のソースを参照)。私がしたいのは、その列の値が変更されるとすぐに、columnB のすべてのセルを再レンダリングすることです。
私は多くのことを試しましたが、うまくいきませんでした。そのため、テーブル全体を再レンダリングする必要がありました。
reRender="my-form:myTable"
面白いことに、テーブルのヘッダー セクションに
reRender="myTable:columnB"
私が望むように正確に動作します(実際にどのように動作するかはわかりませんでした)。
データテーブルの特定の列を再レンダリングする方法を教えてもらえますか?
助けていただければ幸いです。
敬具
ファット
<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>