2013-07-02 4 views
0

На моей странице у меня есть богатый: datatable, который получает данные из бэк-компонента. Я хотел бы вызвать метод в компоненте для обновления данных и после обновления таблицы.Обновление данных и вызов метода боковых бобов после установленного времени

я в настоящее время такую ​​ситуацию, но этот метод вызывается, но таблица остается ип обновилась

<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)"> 

ответ

1

Обычно я определяю действие, которое должно быть названо в самой a4j:poll:

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

Также обратите внимание, что вы определяете a4j:poll и rich:dataTable в двух отдельных формах и что вы не указываете prependId="false" в своих формах. Однако вы ссылаетесь на dataTable (в reRender) без идентификатора формы.
EDIT, основанный на комментариях OP. Вот как вы имеете дело с PREPEND идентификатору, у вас есть два возможных пути:

  1. Просто добавьте prependId="false" к формам
  2. Не добавляйте prependId="false" но определяют ваши формы удостоверения личности, и использовать эти идентификаторы в reRender что-то вроде этого: reRender="theIDYouGaveToYourForm:theIdOfYourDataTable"
+0

Я переключился на javascript, так как на самом деле происходило какое-то обновление. теперь, однако, вся страница обновляется ... – mangusbrother

+1

, конечно, будет, поскольку вы используете 'h: commandLink' с' действием'. Я думаю, что использование 'actionListener' исправит его (я не уверен). Тем не менее, я бы посоветовал использовать 'a4j: poll', так как у него так много хороших функций –

+0

Я попытался использовать опрос a4j:, который вы мне дали. Я могу сказать, что метод бэк-компонента вызывается каждые 5 секунд, точно так же, как я его устанавливал. Однако таблица не обновляется. – mangusbrother