我正在使用带有moment.js和yadcf-plugin的jquery数据表。
在我的表格中,我有一个格式为dd.mm.yyyy的日期字段 - 为了正确排序我使用了moment-plugin,这很有效。
但是在yadcf过滤器中,它被排序为" alpha",如
但我需要
如何使用moment.js对值进行排序?
谢谢。
答案 0 :(得分:1)
更新:请参阅下面的编辑2 ,以回答实际问题。
似乎将sort_as: 'alphaNum'
添加到日期列的yadcf参数中会这样做:
$(document).ready(function(){
$.fn.dataTable.moment( 'DD.MM.YYYY' );
$('#test').dataTable().yadcf([
{column_number : 0, select_type: 'select'},
{column_number : 1, select_type: 'select', sort_as: 'alphaNum'}
]);
});
编辑:如果您还想将默认排序更改为日期列,则需要将order
param添加到dataTables
对象本身:
$(document).ready(function(){
$.fn.dataTable.moment( 'DD.MM.YYYY' );
$('#test').dataTable({
"order": [[ 1, 'asc' ]]
}).yadcf([
{column_number : 0, select_type: 'select'},
{column_number : 1, select_type: 'select', sort_as: 'alphaNum'}
]);
});
编辑2 :如果您想对yadcf选择/下拉列表进行排序,我看到的唯一选项就是拥有自己的排序功能:
$(document).ready(function(){
$.fn.dataTable.moment( 'DD.MM.YYYY' );
$('#test').dataTable({
"order": [[ 1, 'asc' ]]
}).yadcf([
{column_number : 0, select_type: 'select'},
{column_number : 1, select_type: 'select', sort_as: 'custom', sort_as_custom_func: function(one, two) {
if (moment(one, "DD.MM.YYYY").isAfter( moment(two, "DD.MM.YYYY") )) {return true}
else {return false}
}
}
]);
});