DataTable / AjaxFallbackDefaultDataTable:如何配置顶部工具栏?

DataTable / AjaxFallbackDefaultDataTable: How to configure the top toolbar?

我目前正在使用 wicket 编写 Web 应用程序,在 table 视图中列出一些域 dto。我正在使用 AjaxFallbackDefaultDataTable,它扩展了 wicket 的 DataTable。我想始终显示 "Showing 25 of 280" 标签,而不仅仅是在一页以上的情况下,这是默认行为。我在自定义包装 class 中添加一个 AjaxFallbackDefaultDataTable,如下所示:

输入参数列表

List<? extends IColumn<T, String>> iColumns,
ISortableDataProvider<T, String> dataProvider,
int rowsPerPage

DataTable的实例化

table = new AjaxFallbackDefaultDataTable<T, String>("table", iColumns, dataProvider, rowsPerPage);

标记

<wicket:panel>
    <table wicket:id="table" class="table data-table">[table]</table> 
 </wicket:panel>

到目前为止我得到了什么

一些关于 AjaxFallbackDefaultDataTable 的其他问题的答案建议替换 headers,所以我研究了这个主题。据我所知,AjaxFallbackDefaultDataTable 正在添加一个包含 PagingNavigatorAjaxNavigationToolbar。你总是可以调用 DataTable.getTopToolbars() 来获得 ToolbarsContainer,但我被卡住了。我怎样才能更进一步?请帮忙!

我没有替换 AjaxFallbackDefaultDataTable 中的工具栏,而是从 DataTable 开始并添加我想要的工具栏。

在您的情况下,如果您需要显示消息 "Showing 25 of 280" 的 NavigatorToolbar 始终可见,您需要对其进行子类化并将其设置为始终可见。像这样:

public class AlwaysVisibleAjaxNavigationToolbar extends AjaxNavigationToolbar{

    public AlwaysVisibleAjaxNavigationToolbar (final DataTable<?, ?> table)
    {
        super(table);
    }

    @Override
    protected void onConfigure()
    {
        super.onConfigure();
        setVisible(true);
    }

}