Sorting Wicket SortableDataProvider-如何排序?
我使用Wicket创建了这个网页,它加载了一些带有标题的数据,然后在下面加载了大量的行和相应的数据 现在,当我点击其中一个标题时,我希望我的数据能够得到排序。根据我在谷歌上的发现,SortableDataProvider是一个不错的选择。但我发现的每个示例都需要一个参数,而当我实现它时,它需要两个参数。怎么办 我要排序的类是:Sorting Wicket SortableDataProvider-如何排序?,sorting,wicket,Sorting,Wicket,我使用Wicket创建了这个网页,它加载了一些带有标题的数据,然后在下面加载了大量的行和相应的数据 现在,当我点击其中一个标题时,我希望我的数据能够得到排序。根据我在谷歌上的发现,SortableDataProvider是一个不错的选择。但我发现的每个示例都需要一个参数,而当我实现它时,它需要两个参数。怎么办 我要排序的类是: public class SimpleDataView extends WebPage { public SimpleDataView() { addNumb
public class SimpleDataView extends WebPage {
public SimpleDataView() {
addNumberOfRecords();
addHeadlines();
addRecords();
}
private void addNumberOfRecords() {
Data dataModel = getDataModel().getObject();
add(new Label("size", "Number of records: " + dataModel.numberOfRecords()));
}
private void addRecords() {
Data dataModel = getDataModel().getObject();
ListView records = new ListView("records", dataModel.getRecords()) {
@Override
protected void populateItem(ListItem item) {
item.add(new ListView("recordColumn", item.getModel()) {
@Override
protected void populateItem(ListItem item) {
item.add(new Label("value", item.getModel()));
}
});
}
};
add(records);
}
private void addHeadlines() {
Data dataModel = getDataModel().getObject();
ListView headlines = new ListView("headlines", dataModel.getHeaders()) {
@Override
protected void populateItem(ListItem item) {
item.add(new Label("headlineColumn", item.getModel()));
}
};
add(headlines);
}
private IModel<Data> getDataModel() {
IModel<Data> model = new LoadableDetachableModel<Data>() {
@Override
protected Data load() {
DataHandler dataHandler = new DataHandlerImpl();
return dataHandler.getDataFromSource();
}
};
return model;
}
}
公共类SimpleDataView扩展网页{
公共SimpleDataView(){
addNumberOfRecords();
添加标题();
addRecords();
}
私有void addNumberOfRecords(){
数据数据模型=getDataModel().getObject();
添加(新标签(“大小”,“记录数:”+dataModel.numberOfRecords());
}
私有无效addRecords(){
数据数据模型=getDataModel().getObject();
ListView记录=新建ListView(“记录”,dataModel.getRecords()){
@凌驾
受保护的void populateItem(列表项){
添加(新的ListView(“recordColumn”,item.getModel()){
@凌驾
受保护的void populateItem(列表项){
添加(新标签(“值”,item.getModel());
}
});
}
};
增加(记录);
}
私有无效添加标题(){
数据数据模型=getDataModel().getObject();
ListView标题=新建ListView(“标题”,dataModel.getHeaders()){
@凌驾
受保护的void populateItem(列表项){
添加(新标签(“headlineColumn”,item.getModel());
}
};
增加(标题);
}
私有IModel getDataModel(){
IModel model=新的LoadableDetachableModel(){
@凌驾
受保护的数据加载(){
DataHandler DataHandler=newDataHandlerImpl();
返回dataHandler.getDataFromSource();
}
};
收益模型;
}
}
这是Wicket wiki中的一个基本示例
如果需要更多或更少的列,可以调整列。如果使用SortableDataProvider,则应(在创建列时)在列的创建中定义sortProperty。每个可排序的filterable列都有一个构造函数,可以手动定义sortProperty。
顺便说一句,它应该与生成的SQL查询所指向的部分相同。排序在哪里?还没有,这只是提供数据的wicket类,我认为需要在这里进行一些排序。