rich: dataScroller как переключать страницы каждые 10 секунд? - PullRequest
0 голосов
/ 14 декабря 2010

У меня есть rich: dataTable с dataScroller.На каждой странице мне нужно показать 5 записей.Количество записей динамически изменяется.Я обновляю dataTable каждые 20 секунд, чтобы увидеть, есть ли какая-либо новая запись.

Если существует более 5 записей, dataTable будет иметь две или страницы.dataTable, можно ли сказать dataScroller для переключения страниц каждые 10 секунд?После того, как он показывает последнюю страницу, он должен вернуться на первую страницу.

Спасибо

Ответы [ 3 ]

0 голосов
/ 15 декабря 2010

AFAIK, это невозможно при использовании по умолчанию richfaces.Я думаю, что вы сможете периодически обновлять данные в вашей таблице, используя <a4j:poll>, но не автоматическое переключение страниц.Однако <rich:datascroller> имеет клиентский API (который описан здесь ).Сочетание этого с синхронизацией JavaScript может стать способом переключения страниц.

0 голосов
/ 23 декабря 2010

Что ж, вы можете связать dataScroller с компонентом (используя de prop. "Binding") и использовать javascript для "нажатия невидимой кнопки", которая выполняет функцию компонента для перехода на следующую страницу.

Xhtml:

<script type="text/javascript">
   var t;
   t=setTimeout("timedCount()", 1000); 

   function timedCount() {
      document.getElementById('formName:button').click();

      t=setTimeout("timedCount()", 10000); 
   }
</script>

(...)

<h:commandButton id="button" action="#{bean.scrollNext}" reRender="tableID"
                 style="visibility:hidden;"/>

(...)

Bean:

HtmlDataScroller scroll; //(im not sure about the "HtmlDataScroller")

(...)

public void scrollNext() { scroll.next(); }

(...)

//Gets and sets to bind the scroller
get; set;...

Не забудьте создать новый экземпляр htmlDataScroller, иначе вы получите исключение nullPointException ..

0 голосов
/ 15 декабря 2010

Я думаю, это не невозможно.Пожалуйста, попробуйте взглянуть на компонент a4j: poll.Постараюсь и надеюсь выложить больше обновлений

...