1

我在 html 中有播放器表:[table]

当它为空时,如何隐藏或不呈现此表?我尝试在 java 代码中添加 if 条件,并且仅当存在某些值时才将此表添加到页面中,但随后 wicket 抛出异常,他无法找到具有此 ID 的组件。那么我该怎么做呢?

4

4 回答 4

4

如果没有可用的日期,您可以覆盖 isVisible() 函数并返回 false。但是,这个函数会被调用几次,所以如果确定数据是否可用(比如访问数据库),你可以调用 setVisible(boolean) 函数。

如果没有可用数据,另一种选择是用 EmptyPanel 交换中继器。

于 2012-08-17T12:08:39.350 回答
4

它抛出异常是因为 html 标记期望组件存在。即你必须添加它。

如果要隐藏整个面板,则使用 E​​mptyPanel 将隐藏整个面板。

如果面板中只有一个组件,您也可以使用 component.setVisible(false) 隐藏它。

于 2012-08-17T12:09:13.623 回答
3

您可以使用已在 java 中使用的相同条件,但不是不将表格添加到页面,而是使用 table.setVisible(false)。

另一种方法是覆盖 setVisible() 和 isVisible() 方法,但我认为不建议这样做(参见此处

希望这可以帮助

于 2012-08-17T12:05:14.157 回答
2

正如其他用户指出的那样,不建议覆盖 isVisible() ,因为在渲染组件之前会多次调用此函数。您应该改写 onConfigure() 并将决定您的表是否必须可见的代码放入其中。onConfigure() 每个请求只调用一次。

于 2012-08-18T18:42:47.787 回答