htmlにプレーヤーのテーブルがあります:[テーブル]
このテーブルが空のときに非表示または非表示にするにはどうすればよいですか?Javaコードで条件付きの場合に追加し、値がある場合にのみこのテーブルをページに追加しようとしますが、wicketはこのIDのコンポーネントを見つけることができないという例外をスローします。では、どうすればこれを行うことができますか?
isVisible()関数をオーバーライドして、使用可能な日付がない場合はfalseを返すことができます。ただし、この関数は数回呼び出されるため、データが利用可能かどうかを判断する場合(データベースへのアクセスなど)、setVisible(boolean)関数を呼び出すことができます。
別のオプションは、データが利用できない場合にリピーターをEmptyPanelと交換することです。
htmlマークアップはコンポーネントが存在することを想定しているため、例外がスローされます。つまり、追加する必要があります。
非表示にするパネル全体の場合は、EmptyPanelを使用するとパネル全体が非表示になります。
また、component.setVisible(false)を使用して、パネル内のコンポーネントが1つしかない場合は非表示にすることもできます。
You can use the same condition you already use in java, but instead of not adding the table to the page, use table.setVisible(false).
それを行う別の方法は、 setVisible() および isVisible() メソッドをオーバーライドすることですが、推奨されていないと思います (こちらを参照)
お役に立てれば
他のユーザーが指摘しているように、この関数はコンポーネントがレンダリングされる前に何度も呼び出されるため、 isVisible() のオーバーライドは推奨されません。代わりに onConfigure() をオーバーライドし、テーブルを表示する必要があるかどうかを決定するコードをその中に入れる必要があります。onConfigure() は、リクエストごとに 1 回だけ呼び出されます。