1

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>
4

0 に答える 0