2013-07-02 1 views
0

Dans ma page j'ai une riche: datatable qui obtient les données d'un bean backing. Je voudrais appeler une méthode dans le bean pour actualiser les données et après actualiser la table.Méthode d'actualisation des données et de bean de rappel après l'heure définie

J'ai actuellement la situation suivante, mais la méthode est appelée, mais la table reste un rafraîchie

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

Répondre

1

En général, je définir l'action à appeler dans le même a4j:poll:

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

Veuillez également noter que vous définissez a4j:poll et rich:dataTable dans deux formulaires distincts et que vous ne spécifiez pas prependId="false" dans vos formulaires. Cependant, vous faites référence à dataTable (au reRender) sans l'ID de formulaire.
EDIT basé sur les commentaires OP. Voici comment vous traitez avec l'identifiant préfix, vous avez deux façons possibles:

  1. Il suffit d'ajouter prependId="false" à vos formulaires
  2. Ne pas ajouter prependId="false" mais définir vos formes ID, et d'utiliser ces ids dans le reRender partie, quelque chose comme: reRender="theIDYouGaveToYourForm:theIdOfYourDataTable"
+0

Je suis passé à javascript car une sorte de rafraîchissement se produisait réellement. maintenant, cependant, toute la page est en cours de rafraîchissement ... – mangusbrother

+1

bien sûr, puisque vous utilisez un 'h: commandLink' avec une' action'. Je pense que l'utilisation de 'actionListener' le réparerait (je ne suis pas sûr). Cependant, je conseillerais d'utiliser 'a4j: poll' car il a tellement de bonnes fonctionnalités –

+0

j'ai essayé d'utiliser le a4j: sondage que vous m'avez donné. Je peux dire que la méthode du haricot de sauvegarde est appelée toutes les 5 secondes, comme je l'ai définie. Cependant, la table ne se met pas à jour. – mangusbrother

Questions connexes