2015-04-15 6 views
0

Я использую Datatables для сортировки таблиц. Некоторые из моих столбцов содержат данные о валюте. Пример:jQuery dataTables - формат валюты сортировки не работает

1 $ 
12 $ 
12 345 $ 
2 123 $ 

Из пространства в некоторых значениях, DataTables рассмотрит столбец, содержащие строки, а не число, так что-то не правильно См plunker: http://plnkr.co/edit/QU7lIK7pWUfyw6PU5a3H?p=preview

Есть ли способ сделать это правильно сортировать эти данные? И да, если это возможно, без того, чтобы определить его для каждого столбца, у меня есть 20 таблиц, с большим количеством валютных колонок, я не хочу, чтобы определить это для каждой таблицы, благодаря

Большое спасибо

ответ

1

Вам нужно будет создать соответствующий плагин самостоятельно. Алгоритм сортировки по умолчанию не может заботиться о некорректном или не типичном контенте. Но это очень легко. Следующий плагин сортирует ваши специальные валюты правильно:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "my-currency-pre": function(a) { 
     return parseFloat(a.replace(/ /gi, '')); 
    }, 
    "my-currency-asc": function(a,b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 
    "my-currency-desc": function(a,b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

использование:

var table = $('#example').dataTable({ 
    "aoColumnDefs": [ 
     {"sType": "my-currency", "aTargets": [0]} 
    ] 
}); 

демо ->http://jsfiddle.net/8kez8mvy/ (таблица с вашего plnkr)

Он работает путем удаления пробелов и игнорирования знак $ перед сравнением значений. Что касается «, я не хочу определять его для каждой таблицы, спасибо», хорошо - я боюсь, что вы должны - сортировка специальных данных со специальными мерами иногда требует специального кодирования :)

+0

Спасибо, это работает на вашем примере , но когда я попробовал это на своем столе, это не сработает :(http://jsfiddle.net/8kez8mvy/ Я что-то упустил? (см. колонку «montant») спасибо – user

+1

hey @user -

в скрипке такая же, как у вас в plnkr. Можете ли вы отредактировать скрипку со строками/таблицей, с которой у вас нет успеха? Не забудьте объявить плагин перед инициализацией datatable! – davidkonrad

+0

oups, извините, я просто didn ' t предоставить правильную ссылку, я дам вам правильную ссылку за мгновение, спасибо большое – user

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