Wicket Datatable排序链接更改WebResources的URL

Wicket Datatable排序链接更改WebResources的URL,url,datatable,wicket,webresource,Url,Datatable,Wicket,Webresource,所以我有一个有趣的问题。我有一个wicket页面,其中包含一个datatable和一个fusionchart flash图表,该图表使用webresource检索其xml数据文件。我遇到的问题是,当您使用datatable中的页码或排序链接时,它会重新加载页面并更改URL,这样图表就无法再获取其数据 e、 g。 在使用排序链接之前,此数据url适用于图表 vreports/wicket:interface/:5:tabs:panel:prodGraph::IResourceListener::这

所以我有一个有趣的问题。我有一个wicket页面,其中包含一个datatable和一个fusionchart flash图表,该图表使用webresource检索其xml数据文件。我遇到的问题是,当您使用datatable中的页码或排序链接时,它会重新加载页面并更改URL,这样图表就无法再获取其数据

e、 g。 在使用排序链接之前,此数据url适用于图表 vreports/wicket:interface/:5:tabs:panel:prodGraph::IResourceListener::这是基本页面的url:/vreports.5

使用排序链接后,此数据url不起作用 vreports/wicket:interface/:5:tabs:panel:prodGraph:1:IResourceListener::主页url:/verports.5.1

我的问题是如何将图表使用的WebResourceURL与datatable链接隔离开来?我发现问题在于添加的.1,如果您多次单击它,它会增加1,并且web资源URL中的更改也会匹配。特别奇怪的是,如果我在使用排序函数后刷新页面,排序仍然有效,但图表和正确的URL会返回。我是wicket的新手,我真的找不到太多关于它的URL结构如何工作的信息。。。。有什么想法吗

提前谢谢


Sam

我认为您正在使用OrederBYBorder进行排序

试试这个

this.addnew AjaxFallbackOrderByBorderid、字段名、issueSortable{

                private static final long serialVersionUID = 1L;
                @Override
                protected void onSortChanged() {
                    dataView.setCurrentPage(0);
                }
                protected void onAjaxClick(AjaxRequestTarget target) {
                    target.addComponent(componentName);
                }
   }); 

也可以使用BookmarkablePageLink来显示此页面,或使用无状态链接来显示fusionchart页面。

我最终将我的数据表转换为AjaxDefaultFallbackDataTable,我在Ajax中完成了所有分页和排序,因此URL不会因为页面未刷新而更改。AjaxDefaultFallbackDataTable使用它与DataTable是同一个数据提供程序,它只处理AJAX中的所有内容,因此它可能是任何具有相同问题的人的一个简单/更可取的替代方案。实际上,我所需要更改的是我拥有DataTable的任何地方,我将它切换到AjaxDefaultFallbackDataTable,它工作得非常好

谢谢大家的关注! Sam

我认为您需要这样做:当然,除非您的资源确实取决于页面状态,比如排序设置,在这种情况下,您需要更复杂的方法。