Вот мой заказ анализатор:JQuery - TableSorter пользовательский анализатор не работает
$.tablesorter.addParser({
id: "customParser",
is: function (stringValue) {
return false;
},
format: function (stringValue) {
var stringValueParts = stringValue.split("-");
var numericPartOfStringValue = parseInt(stringValueParts[2]);
return numericPartOfStringValue ;
},
type: 'numeric'
});
stringValue будет иметь значения, как:
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-101
- ABC-DE-1000
Вот код, где я настройка на TableSorter и добавил пользовательские сортировки парсер:
$(function() {
$("#dataTable").tablesorter({
headers: {
3: {
sorter: 'customParser'
}
}
});
});
Я добавить console.log (numericPartOfStringValue) и все номера были написаны к консоль, поэтому кажется, что парсер делает то, что он должен делать.
Так что же мне делать?
Я хочу, чтобы мои значения должны быть отсортированы по числовой части строки, как показано ниже:
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-101
- ABC-DE-1000
Что на самом деле происходит?
Значения упорядочены следующим образом:
- АВС-ДЕ-1
- АВС-ДЕ-10
- АВС-ДЕ-100
- АВС-ДЕ-1000
- ABC-DE-101
Что еще я попробовать?
Я добавил следующее в мой HTML, но это не делает разницы:
<th class="{sorter: 'CustomParser'}">
String Value Column
</th>
И наконец:
Вот пример значение из ячейки таблицы:
<td>
<span class="badge">ABC-DE-1</span>
</td>
Вы используете DataTables или TableSorter? Если вы хотите продолжать использовать tablesorter, попробуйте мой [fork of tablesorter] (http://mottie.github.io/tablesorter/docs/), который по умолчанию использует буквенно-цифровой сортировку. Поэтому нет необходимости в специальном парсере в вашем случае. – Mottie
Я использовал оба, datatables для поискового вызова и tablesorter для сортировки. Проблема заключалась в том, что мой пользовательский парсератор-анализатор не работал с данным подкачки. Я не знаю, почему я не использовал сортировку datatables, поэтому я переключил свой код на использование сортировки datatables сейчас. Я реализовал собственный парсер в datatables, и теперь все работает. Поэтому этот вопрос сейчас лишний. Спасибо, что посмотрели. –