reRender特定的一行富:dataTable

时间:2011-08-29 07:43:01

标签: xhtml richfaces row richdatatable rerender

早上好!

reRender是否有可能只有1个特定行的rich:dataTable?

我有一个富有的:dataTable,当我做一些我确定只有1行发生变化的事情时,我只需要重新调整这一行,而不是整个表。可能吗?怎么样?

XHTML:

<rich:dataTable id="myTable"  value="#{bean.table}" var="me">
    <rich:column>
        <h:outputText value="#{me.id}" />
    </rich:column>
    <rich:column>
        <h:outputText value="#{me.valueOne}" />
    </rich:column>
    <rich:column>
        <h:outputText value="#{me.valueTwo}" />
    </rich:column>
</rich:dataTable>

<some:tag.... reRender="??????" action="bean.example" />

Java:
public void example{
   // Do something that affects to the row selected
}

非常感谢。

1 个答案:

答案 0 :(得分:3)

是的,有可能。您必须指定以下内容:

  • 通过可调用MBean方法的标记的reRender属性呈现哪些列
  • 通过ajaxKeys的{​​{1}}属性呈现哪些行。

rich:dataTable属性绑定到ajaxKeys对象,该对象包含要更新的行号。

例如,假设您要使用Set <Integer>调用Mbean方法,并希望在操作完成后呈现特定的行和列。您可以使用以下内容:

a4j:commandButton

<a4j:commandButton action="#{bean.someAction}" reRender="columnID,columnID2"> <f:setPropertyActionListener value="#{idx}" target="#{bean.selectedRow}" /> </a4j:commandButton> <rich:dataTable id="myTable" value="#{bean.table}" var="me" ajaxKeys="#{bean.rowsToUpdate}" rowKeyVar="idx"> <rich:column id="columnID"> <h:outputText value="#{me.id}" /> </rich:column> <rich:column id="columnID2"> <h:outputText value="#{me.valueOne}" /> </rich:column> <rich:column> <h:outputText value="#{me.valueTwo}" /> </rich:column> </rich:dataTable> 内,您要将要更新的行号添加到bean.someAction()整数集:

rowsToUpdate