所以我有一个有趣的问题。我有一个wicket页面,其中包含一个数据表和一个fusionchart(flash chart),它使用webresource来检索它的xml数据文件。我遇到的问题是,当您使用数据表中的页码或排序链接时,它会重新加载页面并更改URL,使得图表无法再获取其数据。
e.g。 在使用排序链接之前(此数据网址适用于图表) vreports / wicket:interface /:5:tabs:panel:prodGraph :: IResourceListener ::(这是基页的url:/vreports.5)
使用排序链接后(此数据网址不起作用) vreports / wicket:interface /:5:tabs:panel:prodGraph:1:IResourceListener ::(基页url:/verports.5.1)
我的问题是如何从数据表链接中隔离图表使用的网络资源URL?我看到问题是.1被添加,如果你多次点击它会增加1并且web资源URL的变化匹配。特别奇怪的是,如果我在使用排序函数后刷新页面,排序仍然有效,但图表(和正确的URL)会回来。我是wicket的新手,我真的找不到关于它的URL结构如何工作的任何信息....任何想法?
提前致谢!
萨姆
答案 0 :(得分:0)
我认为您正在使用OrederBYBorder进行排序。
试试这个
this.add(new AjaxFallbackOrderByBorder(id,fieldName,issueSortable){
private static final long serialVersionUID = 1L;
@Override
protected void onSortChanged() {
dataView.setCurrentPage(0);
}
protected void onAjaxClick(AjaxRequestTarget target) {
target.addComponent(componentName);
}
});
也可以使用BookmarkablePageLink进入此页面,或者StatelessLink意味着使用这些链接进入fusionchart页面。
答案 1 :(得分:0)
我最终将我的数据表转换为AjaxDefaultFallbackDataTable,并且我在Ajax中完成了所有分页和排序,因此URL不会更改,因为页面没有刷新。 AjaxDefaultFallbackDataTable使用与DataTable相同的DataProvider,它只处理AJAX中的所有内容,因此对于具有相同问题的任何人来说,它可能是一个简单/可取的替代方案。从字面上看,我必须改变的只是我有DataTable的地方,我将它切换到AjaxDefaultFallbackDataTable并且效果很好!
感谢大家的期待! 萨姆