感谢您的关注,我遇到了一个我无法解决的奇怪问题。我已经构建了一个 DataTable,其中 wicket 映射了来自 mongoDB 的内容。我也在使用 Tomcat7 和 Eclipse
但是,每次我选择要排序的列时,数据提供者的迭代器方法中的 getSort() 方法总是返回与默认值相同的值。
public SortableGalaxyDataProvider() {
setSort("name", SortOrder.ASCENDING);
}
@Override
public Iterator<? extends Galaxy> iterator(long first, long count) {
SortParam<String> sort = getSort(); //is always the same
我的页面的初始化是这样完成的
[编辑] 我使用 Spring 进行注入,所以在 GalaxyTable 页面中我有。
@Inject
SortableGalaxyDataProvider galaxyProvider;
public GalaxyTable() {
List<IColumn<Galaxy, String>> columns = new ArrayList<IColumn<Galaxy, String>>();
columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Name"),"name","name"));
columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Type"),"type","type"));
columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Ancestors"),"ancestors","ancestors"));
columns.add(new PropertyColumn<Galaxy,String>(new Model<String>("Radius"),"radius","radius"));
add(new DefaultDataTable<Galaxy, String>("galaxies", columns, galaxyProvider, 10));
}
这是用于表格的 html 行
<wicket:extend>
<table cellspacing="0" wicket:id="galaxies">[table]</table>
</wicket:extend>
我找了很多例子,似乎没有人遇到同样的问题,初始显示是正常的,我可以浏览内容但是它永远不会排序,因为排序状态没有改变。
有什么线索吗?
谢谢