2016-01-26 2 views
0

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

Ниже приведена моя инициализация данных, ответ с запросом на сортировку здесь не предмет, мне просто нужен способ передать информацию о том, какой столбец щелкнут на контроллере, и тот, который я сделаю для сортировки.

('#myTable').dataTable({ 
     "processing": true, 
     "serverSide": true, 
     "info": false, 
     "pageLength": 10, 
     "lengthChange": false, 
     "stateSave": false, 
     "bPaginate": true, 
     "bFilter": false, 
     "sPaginationType": "full_numbers", 
     "info": "Page _PAGE_ from _PAGES_", 
     "infoEmpty": "No data", 
     "oPaginate": { 
      "sFirst": "First", 
      "sPrevious": "Previous", 
      "sNext": "Next", 
      "sLast": "Last" 
      }, 
      "ajax": { 
       "url": "@string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"))/MyController/GetData", 
         "type": "GET", 
         "data": function (d) { 
          ..... 
         }, 
        }, 
        preDrawCallback: function (settings) { 
         ... 
        }, 
        drawCallback: function (settings) { 
         ... 
        },      
        "columns": [ 
          { "data": "Id" }, 
          { "data": "FirstName" }, 
          { "data": "LastName" }, 
          { "data": "Age" } 
        ], 
        "columnDefs": [ 
         { 
          targets: [0], 
          orderable: false 
         }, 
         { 
          render: function (data, type, row) { 
           ... 
         } 
        ], 
        "order": [[0, "desc"]] 
       }); 

public ActionResult GetData(){ 
    var sortColumn = ... 
    ... 
} 

ответ

0

Вы можете связать 'порядок' событие так:

$('#myTable').on('order.dt', function() { 

    var order = table.order(); 
    var column_selected = order[0][0]; 
    var order_way= order[0][1]; 
    doStuff(column_selected ,order_way); 

}); 

Посмотри in plugin reference

0

Указав "serverSide": true,, DataTables будет по умолчанию добавить информацию на запрос, который вам нужно для использования в вашем серверном коде. Если вы заглянете в панель Firebug Network, вы сможете увидеть запрос с параметрами querystring. Полный список параметров см. В разделе here. Обратите внимание, что ссылка на документацию v1.9, потому что это похоже на то, что вы используете.

Для сортировки вас будут интересовать iSortCol_0 и sSortDir_0, которые относятся к столбцу щелчка и направлению сортировки соответственно.

В вашем методе контроллера, вы бы получить доступ к параметрам, как это:

var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); 
var sortColumnDir = Request["sSortDir_0"]; 

Затем нужно включить это и другие параметры в запросе.

Здесь article с использованием серверных данных с MVC

Смежные вопросы