2010-06-30 4 views
2

У меня есть datatable, который вытаскивает информацию из базы данных. Я добавил кнопку в форму, которую я хочу использовать, чтобы заставить таблицу (id of «table») обновиться, однако я не уверен, как это сделать. Что я имею в виду:Как принудительно обновлять данные через AJAX в JSF 2.0?

<h:commandButton value="Refresh"> 
    <f:ajax render="table"/> 
</h:commandButton> 

Моя цель состояла в том, чтобы заставить компонент таблицы принудительно отображать при нажатии кнопки. Тем не менее, похоже, что либо щелчок игнорируется, либо он возвращает кэшированные данные, а не фактически выходит и снова вызывает мой код базы данных.

Что я делаю неправильно?

ответ

0

Тьфу. Это действительно работает, просто невероятно медленно. Недавно мы переключили серверы баз данных, и запрос, который занял менее секунды на старом, как раз, занимает более 20 секунд на новом. Я просто убирал время, наблюдая за ним. Вздох.

В качестве побочного примечания, как только я понял это, я тестировал как с действиями, так и без них. Работает в обоих направлениях (с помощью геттера, выполняющего поиск).

1

Вы должны указать действие в вашей команде CommandButton, которая вызывает компонент и обновляет данные, отображаемые в таблице (в данный момент кнопка ничего не делает). Я не Pro, но я думаю, что это должно выглядеть следующим образом:

<h:commandButton value="Refresh" action="#{myBean.refreshData}"> 
    <f:ajax render="table"/> 
</h:commandButton> 
+0

Я тоже это пробовал. Метод bean вызывает вызов, но таблица никогда не обновляется. В моем случае нет особой необходимости в методе, потому что получатель, который ссылается на таблицу, выполняет поиск базы данных (я не кэширую в объекте в настоящее время). –