我有一个wicket表单-当我单击submit时-它显示了数据库中的动态表-我希望表是可排序的-所以我使用listview repeater和table sorttable.js来对表进行排序。
现在,当我重新刷新页面时-我可以使用排序功能-但当我单击提交时,我无法对表进行排序
wmc.add(new AttributeAppender("class", new Model("sorttable"), ";"));
wmc.add(new AttributeAppender("onclick", new Model("sorttable()"), ";"));
<table class="sortable" wicket:id="someContainer">有没有什么方法可以在ajax重绘完成的同时重新加载我的sorttable.js?
发布于 2012-04-03 04:44:51
这里真正的问题是sorttable.js (至少是我找到的那个版本)并不是真的打算这么做。您确实可以将javascript调用附加到Ajax调用的末尾。查看我的结果at github。
基本上,您需要将以下代码添加到重新加载ListView的AjaxSubmitLink中:
target.appendJavaScript("sorttable.init();");唯一剩下的问题是,sorttable.js以某种方式阻止自己运行两次。所以我需要注释掉
if (arguments.callee.done)签入init()函数。我对javascript的了解相当有限。如果你知道更好的方法,请让我知道。
发布于 2012-04-03 00:08:37
我不能保证100 %,但我认为不可能在此ajax调用中或由其触发的javascript也重新加载。
我将使用wicket框架提供的DefaultDataTable组件。它附带了对排序的构建支持。
发布于 2012-04-03 05:28:32
当你插入一些在准备好文档(jquery之类的东西)上执行的javascript时,你必须在将更改应用到你的DOM时重新附加事件,你可以按照bert所说的去做,或者覆盖称为renderHead的方法,
wathever wicket通过ajax实现了一个具有订单的表(请参阅http://wicketstuff.org/wicket14/repeater/
https://stackoverflow.com/questions/9979753
复制相似问题