如何重新渲染rich的特定列:datatable?

时间:2012-05-07 12:36:26

标签: jsf richfaces

我有一个由两列组成的表,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>

0 个答案:

没有答案