Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Wicket SortableDataProvider-如何排序?_Sorting_Wicket - Fatal编程技术网

Sorting Wicket SortableDataProvider-如何排序?

Sorting Wicket SortableDataProvider-如何排序?,sorting,wicket,Sorting,Wicket,我使用Wicket创建了这个网页,它加载了一些带有标题的数据,然后在下面加载了大量的行和相应的数据 现在,当我点击其中一个标题时,我希望我的数据能够得到排序。根据我在谷歌上的发现,SortableDataProvider是一个不错的选择。但我发现的每个示例都需要一个参数,而当我实现它时,它需要两个参数。怎么办 我要排序的类是: public class SimpleDataView extends WebPage { public SimpleDataView() { addNumb

我使用Wicket创建了这个网页,它加载了一些带有标题的数据,然后在下面加载了大量的行和相应的数据

现在,当我点击其中一个标题时,我希望我的数据能够得到排序。根据我在谷歌上的发现,SortableDataProvider是一个不错的选择。但我发现的每个示例都需要一个参数,而当我实现它时,它需要两个参数。怎么办

我要排序的类是:

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类,我认为需要在这里进行一些排序。