0

在我的页面中,我有一个丰富的:数据表,它从支持 bean 获取数据。我想在 bean 中调用一个方法来刷新数据并在刷新表之后。

我目前有以下情况,但是正在调用该方法但该表仍未刷新

<f:view>
    <h:form>
        <a4j:region>
            <a4j:poll id="poll" interval="5000" action="#{attendance.updateData()}" enabled="true" reRender="poll,attendanceList"/>
        </a4j:region>
        <rich:dataTable width="500" id="attendanceList" reRender="scroller"
            rows="#{attendance.getRows()}" columnClasses="attendance"
            rowClasses="even-row, odd-row"
            value="#{attendance.getData()}" var="a"
            style="width:100%" rendered="#{attendance.renderAttendanceList}"
            onbegin="waitCursor(true)" oncomplete="waitCursor(false)">
4

1 回答 1

1

通常,我自己定义要调用的操作a4j:poll

<a4j:poll id="poll" interval="1800000" action="#{viewManagedBean.actionToBeCalled}" enabled="true" reRender="poll,attendanceList"/>

另请注意,您是在两个单独的表格中定义a4j:pollrich:dataTable并且您没有prependId="false"在表格中指定。但是,您正在引用reRender没有表单 ID 的 dataTable (in )。
根据 OP 评论进行编辑。这是您处理前置 id 的方式,您有两种可能的方式:

  1. 只需添加prependId="false"到您的表格
  2. 不要添加prependId="false"而是定义您的表单 ID,并在reRender部件中使用这些 ID,如下所示:reRender="theIDYouGaveToYourForm:theIdOfYourDataTable"
于 2013-07-02T10:12:06.987 回答