0

私のページには、バッキング Bean からデータを取得する rich:datatable があります。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:pollまた、 とrich:dataTableを 2 つの別個のフォームで定義しており、フォームで指定していないことに注意してprependId="false"ください。reRenderただし、フォーム ID なしで dataTable (in) を参照しています。
OPコメントに基づいて編集します。プリペンド ID を処理する方法は次のとおりです。2 つの方法があります。

  1. prependId="false"フォームに追加するだけ
  2. a を追加せずにprependId="false"フォーム ID を定義し、これらの ID をreRenderパーツで使用します。次のようになります。reRender="theIDYouGaveToYourForm:theIdOfYourDataTable"
于 2013-07-02T10:12:06.987 に答える