【问题标题】:In Wicket DefaultTableTree is it possible to use AJAX page navigation?在 Wicket DefaultTableTree 中是否可以使用 AJAX 页面导航?
【发布时间】:2020-03-08 01:15:36
【问题描述】:

我们正在使用 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 版本替换它?

【问题讨论】:

    标签: java wicket


    【解决方案1】:

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

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

    您可能更容易直接继承 TableTree 并根据需要进行配置。

    【讨论】:

    • 谢谢 - 结果证明这是一个非常简单的解决方案! :)
    【解决方案2】:

    在不需要树表的情况下回答我自己的问题:

    如果您想使用 DataTable 而不需要 Tree 表,那么此类对于获取 AJAX 驱动的数据表最有用:

    https://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2011-02-14
      • 2020-08-04
      • 1970-01-01
      相关资源
      最近更新 更多