Richfaces: проблема с генерацией данных HTML / datatable - PullRequest
0 голосов
/ 25 января 2010

Я использую RichFaces 3.3.1 с JSF RE 1.2 и facelets. У меня странная проблема с созданием в HTML rich: dataTable, подключенного к rich: datascroller.

<h:form id="br">
...
 <rich:datascroller id="scrt" page="#{searchBookings.page}" stepControls="hide" renderIfSinglePage="false" for="bt" align="left" reRender="ttips,bt"/>
 <rich:dataTable id="bt" rows="20" rendered="#{!empty searchBookings.bookings}" value="#{searchBookings.bookings}" var="row" binding="#{searchBookings.table}">
....

При первой загрузке страницы все работает хорошо. Если я захожу на ту же страницу во второй раз, смена страниц через контроллер данных больше не обновляет данные. Нажатие кнопки обновления решает проблему.

Добавление a4j: log выдает это предупреждение:

 warn[14:50:07,259]: Node for replace by response with id br:bt not found in document

Действительно, при проверке HTML «правильная» страница выглядит так:

  <table class="dr-table rich-table " id="br:bt" ....

В то время как «плохая» страница выглядит так:

  <table class="dr-table rich-table " id="br:bt:0" ....

Обратите внимание на ": 0" в конце идентификатора, его там быть не должно. Что может быть причиной этого?

Спасибо за любой вклад.

1 Ответ

1 голос
/ 25 января 2010

хорошо нашел это. где-то в бобе я сделал

table.setRowIndex (0);

что я хотел сделать, это

table.setFirst (0);

Первый, очевидно, заставляет генератор предполагать, что он генерирует строки, поэтому он возвращает идентификатор строки, добавляя «: 0». Не знаю, как это влияет только на второй раз, когда страница генерируется, хотя. Надеюсь, это пригодится кому-то еще раз.

...