2

データベースから情報を取得するdatatableがあります。テーブル(「table」のID)を強制的に更新するために使用するボタンをフォームに追加しましたが、その方法がわかりません。私が今持っているのは:

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

私の目標は、ボタンがクリックされたときにテーブルコンポーネントを強制的にレンダリングすることでした。ただし、実際に外に出てデータベースコードを再度呼び出すのではなく、クリックが無視されているか、キャッシュされたデータが返されているようです。

私は何が間違っているのですか?

4

2 に答える 2

1

コマンドボタンで、Beanを呼び出し、テーブルに表示されているデータを更新するアクションを指定する必要があります(現在、ボタンは何もしません)。私はプロではありませんが、次のようになります。

<h:commandButton value="Refresh" action="#{myBean.refreshData}">
  <f:ajax render="table"/>
</h:commandButton>
于 2010-07-01T10:37:00.580 に答える
0

うーん。それは実際に機能していて、信じられないほど痛々しいほど遅いです。最近データベースサーバーを切り替えましたが、古いサーバーで1秒未満かかったクエリは、新しいサーバーではたまたま20秒以上かかります。私はそれを見ている間ちょうどタイムアウトしていました。はぁ。

ちなみに、私はそれを理解するとすぐに、アクションありとなしの両方でテストしました。両方の方法で機能します(ゲッターがルックアップを実行します)。

于 2010-07-01T13:45:46.613 に答える