почему в таблицах данных на стороне сервера отображаются все записи на одной странице, а поиск не работает? - PullRequest
0 голосов
/ 13 сентября 2018

Я работал с таблицей данных. все работает довольно хорошо, проблема в том, что - нумерация страниц не работает идеально, - поиск не работает - все данные отображаются только на одной странице

Я использовал приведенный ниже код для инициализации datatable -

$(document).ready(function () {
    $('#example').DataTable({

        "processing" : true,
        "serverSide" : true,
        "pageLength" : 5,
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
        "ajax" : {
            url: "/users",
            type:"GET",
            dataSrc : "data",
        },
        "columns":[
             {"data": "id"},
            {"data": "name"},
            {"data": "tweet"}
        ]
    });

});

и моя диспетчерская служба (игровая среда)

 public Result ListAll(){
    List<User> users = User.find.all();
    System.out.println(toJson(users).toString());
    DataTableObject dataTableObject = new DataTableObject();
    dataTableObject.setData(users);

    String json = toJson(dataTableObject).toString();
    System.out.println("----> " + json );
    return ok(toJson(dataTableObject));

}

и Класс DataTableObject

public class DataTableObject {
    int draw = 1;
    int  recordsTotal= 26;

    int  recordsFiltered =26;

    List<User> data;

    public int getRecordsTotal() {
        return recordsTotal;
    }

    public void setDraw(int draw) {
        this.draw = draw;
    }

    public int getDraw() {
        return draw;
    }

    public void setRecordsTotal(int recordsTotal) {
        this.recordsTotal = recordsTotal;
    }

    public int getRecordsFiltered() {
        return recordsFiltered;
    }

    public void setRecordsFiltered(int recordsFiltered) {
        this.recordsFiltered = recordsFiltered;
    }


    public List<User> getData() {
        return data;
    }

    public void setData(List<User> data) {
        this.data = data;
    }

}

а это скриншот моего http://localhost:9000/

1 Ответ

0 голосов
/ 13 сентября 2018

При использовании serverSide:true Datatables не обрабатывает поиск, фильтрацию, разбиение на страницы или упорядочивание.Вы должны манипулировать запросом, основываясь на отправляемых параметрах , которые отправляет datatables с запросом Get / Post при просмотре, сортировке или поиске в таблице.

...