我有一个数据表,我在其中填充了一些数据,但我需要在该表上启用排序操作。但是我的排序不起作用。这是我到目前为止所做的代码。
$('#example').dataTable( {
"processing": true,
"serverSide": true,
aaSorting: [[2, 'desc']],
"ajax": url,
"columns": [
{"data" : "code"},
{ "data": "description"},
{ "data" : "mrpString"},
{ "data":"unitDescription"},
{ "data":"moq"}
],
"columnDefs": [
{
"targets": [ 0 ],
"visible": true,
"searchable": false,
"sortable" :false
},
{
"targets": [ 1 ],
"visible": true,
"searchable": true,
"sortable" :true
},
{
"targets": [ 2 ],
"visible": true,
"searchable": false
},
{
"targets": [ 3 ],
"visible": true,
"visible": true,
"searchable": true
},
{
"targets": [ 4 ],
"visible": true,
"visible": true,
"searchable": true
}
],
"aoColumnDefs": [
{ "bSortable": true, "aTargets": [0,1,2,3,4] }
] ,
"rowCallback": function( row, data ) {
$("td:eq(0)",row).html("<a href='"+data.url+"' target='_new'>"+data.code+"<//a/> ");
//alert(data.parentCategoryId);
/* $('td:eq(6)', row).html( '<input type="checkbox" name="selectedIds" value="'+data.id+'" />' ).attr("class","checkIds");
$('td:eq(0)',row).attr('id','_'+data.id); */
}
});
});
这是我已经完成搜索的代码也可以工作,但我想要排序 enanled,请有人帮忙
我知道这是一个旧帖子..但是检查一下..
服务器端意味着你在服务器端做所有事情。在服务器上,无论使用什么方法为您的表获取数据,也负责对您的表进行分页和排序。我的排序不工作.. 然后我意识到我的服务器端方法没有进行排序!所以..简而言之,我将其添加到负责为我的表 (C#) 提供数据的服务器端方法或函数中: (注意:“数据”是我的数据表的对象列表)
var myJsonOrder = JsonConvert.DeserializeObject<List<DataTableOrder>>(Request.Params["JsonOrder"]);
// Sorting
if (myJsonOrder != null && myJsonOrder.Count > 0)
{
var firstOrder = myJsonOrder.FirstOrDefault();
switch (firstOrder.column)
{
case 1:
data = firstOrder.dir == "asc" ? data.OrderBy(x => x.TripName).ToList() : data.OrderByDescending(x => x.TripName).ToList();
break;
case 2:
data = firstOrder.dir == "asc" ? data.OrderBy(x => x.TripStartDate).ToList() : data.OrderByDescending(x => x.TripStartDate).ToList();
break;
case 3:
data = firstOrder.dir == "asc" ? data.OrderBy(x => x.NumTravelers).ToList() : data.OrderByDescending(x => x.NumTravelers).ToList();
break;
case 4:
data = firstOrder.dir == "asc" ? data.OrderBy(x => x.NumCardsAssigned).ToList() : data.OrderByDescending(x => x.NumCardsAssigned).ToList();
break;
}
}
请求中还有其他可用数据,例如列和搜索查询:
var myJsonColumns = JsonConvert.DeserializeObject<List<DataTableColumn>>(Request.Params["JsonColumns"]);
var myJsonOrder = JsonConvert.DeserializeObject<List<DataTableOrder>>(Request.Params["JsonOrder"]);
var myJsonSearch = JsonConvert.DeserializeObject<DataTableSearch>(Request.Params["JsonSearch"]);
编辑:抱歉,在我要去的时候学习这个..服务器上提供了列/订单/搜索数据,因为在我对数据表的 AJAX 调用中,我将数据传递给服务器:
inactiveTravelerDataTable = $("#inactive-traveler-list-data-table").dataTable({
"processing": true,
"serverSide": true,
"jQueryUI": true,
"searching": false,
"dom": 'rtipl',
"ajax": {
"url": '/Trip/JsonInactiveTravelerList/',
"data": function(d) {
d.TripId = $('#TripId').val();
d.JsonColumns = JSON.stringify(d.columns);
d.JsonOrder = JSON.stringify(d.order);
d.JsonSearch = JSON.stringify(d.search);
},
"type": "POST"
}
//.... Continued on...
希望这对某人有帮助。
问候,