在我的页面中,我有一个rich:datatable,它从一个支持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)">
答案 0 :(得分:1)
通常,我定义要在a4j:poll
本身中调用的动作:
<a4j:poll id="poll" interval="1800000" action="#{viewManagedBean.actionToBeCalled}" enabled="true" reRender="poll,attendanceList"/>
另请注意,您是以两种不同的形式定义a4j:poll
和rich:dataTable
,并且未在表单中指定prependId="false"
。但是,您在没有表单ID的情况下引用dataTable(在reRender
中)
编辑基于OP评论。以下是处理prepend id的方法,您有两种可能的方法:
prependId="false"
添加到您的表单prependId="false"
,但要定义表单ID,并在reRender
部分中使用这些ID,如下所示:reRender="theIDYouGaveToYourForm:theIdOfYourDataTable"