我们使用的是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版本应该可以吗?
DefaultTableTree
只是其抽象超类的默认实现,带有工具栏和主题的某些配置:
直接将TableTree
子类化并根据需要进行配置可能会更容易。