Wicket Datatable排序链接更改WebResources的URL

时间:2012-06-27 19:55:36

标签: url datatable wicket webresource

所以我有一个有趣的问题。我有一个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结构如何工作的任何信息....任何想法?

提前致谢!

萨姆

2 个答案:

答案 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并且效果很好!

感谢大家的期待! 萨姆