2016-01-26 51 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,,數據表將默認信息添加到您需要的請求在您的服務器端代碼中使用。如果您查看Firebug Network面板,您將能夠使用查詢字符串參數查看請求。請參閱here以獲取完整的參數列表。請注意,該鏈接是針對v1.9文檔的,因爲這就是您使用的樣子。

因此對於排序,您會對iSortCol_0sSortDir_0感興趣,它們分別與點擊列和排序方向有關。

在你的控制器的方法,你就可以訪問的參數是這樣的:

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

然後,您需要將這一和其它參數到你的查詢。

這是關於使用帶MVC的服務器端數據表的article