首页 > 解决方案 > 在 Wicket DefaultTableTree 中是否可以使用 AJAX 页面导航?

问题描述

我们正在使用 DefaultTableTree,它工作得很好,除了我在页面上有其他内容,我希望分页只更新表格内容而不是整页刷新。

我注意到 DefaultTableTree 的构造函数构造了一个 NavigationToolBar(非 AJAX):

public DefaultTableTree(String id, List<? extends IColumn<T, S>> columns, ISortableTreeProvider<T, S> provider, int rowsPerPage, IModel<Set<T>> state) {
        super(id, columns, provider, (long)rowsPerPage, state);
        this.getTable().addTopToolbar(new NavigationToolbar(this.getTable()));
        this.getTable().addTopToolbar(new HeadersToolbar(this.getTable(), provider));
        this.getTable().addBottomToolbar(new NoRecordsToolbar(this.getTable()));
        this.add(new Behavior[]{new WindowsTheme()});
}

是否有某种覆盖此行为以使其创建 AjaxNavigationToolBar 而不是此非 AJAX 版本的导航器?

如果不是,是否可以在构造 DefaultTableTree 后简单地删除该导航器并将其替换为 AJAX 版本?

标签: javawicket

解决方案


DefaultTableTree只是其抽象超类的默认实现,带有一些工具栏和主题的配置:

https://github.com/apache/wicket/blob/master/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java

您可能更容易根据需要直接TableTree对其进行子类化和配置。


推荐阅读