таблица данных на сервере - PullRequest
       2

таблица данных на сервере

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

привет, мы используем таблицу данных jquery, До сих пор мы можем сделать вызов API и загрузить данные. Мой код на стороне сервера -

   string headers = "\"total\": \"" + totalPages + "\", \"columnNames\": \"" + columnNames + "\", \"page\": \"" + page + "\", \"records\": \"" + totalrows + "\"";


                        responsetoken.content = functions.Serialize(ldData).Insert(1, headers + ", ");

и мой код на стороне клиента -

   $.ajax({
                url: 'staticreport',
                data: JSON.stringify({
                     startDate: that.startDate, endDate: that.endDate
                }),
                cache: false,
                datatype: "json",
                type: "PUT",
                success: function (data) {
                    if (data.StaticReportList != null) {

                      var columns = [];
                        var colName = data.columnNames.split(',');
                        console.log(colName);
                        for (var i in colName) {
                            columns.push({ data: colName[i], title: colName[i] });
                        }
                        console.log(columns);
                        console.log(columns.data);
                        $('#grid').DataTable({
                            data: data.StaticReportList,
                            columns: columns
                        });
                    }
                    that.mainView.ajaxDecrement();
                }
            });

Я хочу поместить пейджинг в datatable, который будет вызывать api после каждого следующего клика и получать следующий набор записей, в то время как я принес только 100 записей, а также общее количество записей для создания пейджинга.

вот так выглядит мой объект enter image description here

как я могу применить пейджинг на стороне сервера в datatable?

Ответы [ 2 ]

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

Вот документация для обработки на сервере данных datatables https://datatables.net/manual/server-side. Я думаю, вы должны взять размер записей на основе раскрывающегося списка и подкачки. Вы можете получить параметры length (используемые для ограничения в дБ) и start (используемые для смещения), отправленные на ваш сервер.

Datatables всегда отправляет свои параметры на ваш сервер, вы можете проверить это, просмотрев вкладку network в вашем инструменте разработки браузера или в документации. Чтобы добавить дополнительные параметры для вашего запроса, вы можете добавить метод data к вашему запросу ajax, как показано ниже, который принимает исходные параметры Datatables.

          $("#table").DataTable({
                processing: true,
                serverSide: true,
                ajax: {
                    url: 'staticreport',
                    data: function (d) {
                        d.startDate = $("#startDate").val();
                        d.endDate = $("#endDate").val();
                    }
                }
           });

Надеюсь, это поможет.

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

Страница ajax должна быть страницей, которая разделяет данные. Если вы отслеживаете ваши запросы и ответы, например, если пользователь щелкает страницу «3», то параметры URL-адреса get или post будут содержать & iDisplaystart и & iDisplaylength

Если вы одновременно отображаете 50 записей, & iDisplaylength будет 50.

Если пользователь нажмет «3», iDisplaystart будет равен 100 (Страница 0 начинается с 0, Страница 1 с 50, страница 2 с 100, страница 3 ...)

Ваша страница ajax должна быть способна читать переменные запроса и содержать логику для отправки обратно 50 записей (считанных из переменных запроса), начиная с записи 100 (считанной из переменных запроса). Также в URL включены порядок сортировки столбцов и значение фильтра, если оно используется.

Начало вашего ответа JSON должно быть что-то вроде

{ "iTotalRecords":  # of total records in your data set ,
"iTotalDisplayRecords":  # of total records that match the filter or search value,
"data": [
... your jSON data starting at record 100, and running for 50 records
]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...