Сортировать datatable по скрытому столбцу
Я datatable
С id, firstName, lastName, phone, updated
поля.
: я добавляю к datatable
только четыре поля (id, firstName, lastName и phone). Updated
поле скрыто.
вопрос: способ сортировки datatable
by updated
поле?
мой код:
$('#table').dataTable({
sDom: '<"top"fi>tS',
sScrollY: ($(window).height() - 250) + "px",
bPaginate: false,
bDeferRender: true,
bAutoWidth: false,
oLanguage: {
sInfo: "Total: _TOTAL_ entities",
sEmptyTable: "No pending entities"
},
"aoColumnDefs": [
{ "iDataSort": 4, "aTargets": [ 0 ] }
],
"aoColumns": [
{ "sWidth": "10%" },
{ "sWidth": "40%" },
{ "sWidth": "30%" },
{ "sWidth": "20%" },
{ "sTitle": "updated ", "bVisible":false }
],
fnCreatedRow: function( nRow, aData, iDataIndex ) {
$(nRow).attr('id', aData[0]);
}
});
table.fnAddData([id, firstName, lastName, phone, updated]);
3 ответов
iDataSort индекс столбца (начиная с 0!) вы хотите, чтобы сортировка выполнялась, когда этот столбец выбран для сортировки. Это можно использовать, например, для сортировки по скрытым столбцам.
Default: -1
использовать автоматически вычисляемый индекс столбца
Type: int
// Using aoColumnDefs $(document).ready( function() { $('#example').dataTable( { "aoColumnDefs": [ { "iDataSort": 1, "aTargets": [ 0 ] } ] } ); } ); // Using aoColumns $(document).ready( function() { $('#example').dataTable( { "aoColumns": [ { "iDataSort": 1 }, null, null, null, null ] } ); } );
вы можете просто использовать { "iDataSort": 4 }
здесь (4-индекс вашего скрытого поля)
var data = [
["1","john","mathew","1234",[]],
["2","Mary","rose","1234","1"],
];
добавить скрытые поля и добавить данные в таблицу
aaData: data,
aoColumns :[
{ "sTitle": "id","bSortable": false },
{ "sTitle": "firstName","bSortable": false, },
{ "sTitle": "lastName", "bSortable": false,},
{"sTitle": "phone","bSortable": false},
{"sTitle": "updated ", "bVisible":false },
]
для добавления скрытых полей используйте "bVisible":false
я столкнулся с проблемой сортировки скрытого столбца во время выполнения, не знаю, является ли подход допустимым или нет. Я использовал следующие строки, чтобы скрыть столбец через CSS
td:nth-of-type(2) {
display: none;
}
где 2-это ваш столбец, назначьте класс <th class="mycolum1">
и используйте jquery, чтобы отсортировать его как
$("#button").click(function(){
$(".mycolumn").click();
})
извините меня, если подход недействителен, но в моем случае это 100% приемлемо.