gpt4 book ai didi

xhtml - 重新渲染特定行富:dataTable

转载 作者:行者123 更新时间:2023-12-03 23:57:57 26 4
gpt4 key购买 nike

早上好!

是否可以仅重新渲染rich:dataTable 的 1 个特定行?

我有一个丰富的: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
}

非常感谢你。

最佳答案

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

  • 通过 reRender 呈现哪些列可以调用MBean方法的标签属性
  • 通过 ajaxKeys 渲染哪些行rich:dataTable 的属性.
  • ajaxKeys属性绑定(bind)到 Set <Integer>保存要更新的行号的对象。

    例如,假设您想使用 a4j:commandButton 调用 Mbean 方法。并希望在操作完成后呈现特定的行和列。您可以使用以下内容:
    <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整数集:
    HashSet<Integer> rows = new HashSet<Integer>();
    rows.add(selectedRow);
    setRowsToUpdate( rows );

    关于xhtml - 重新渲染特定行富:dataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7227416/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com