jQuery-TableSorter自定义解析器不工作
这是我的自定义解析器:jQuery-TableSorter自定义解析器不工作,jquery,tablesorter,Jquery,Tablesorter,这是我的自定义解析器: $.tablesorter.addParser({ id: "customParser", is: function (stringValue) { return false; }, format: function (stringValue) { var stringValueParts = stringValue.split("-"); var numericPartOfStringVal
$.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
$(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
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-1000
- ABC-DE-101
<th class="{sorter: 'CustomParser'}">
String Value Column
</th>
字符串值列
最后:
以下是表格单元格中的示例值:
<td>
<span class="badge">ABC-DE-1</span>
</td>
ABC-DE-1
如果正常工作,您只需设置默认排序顺序。我使用了一个元组数组,它包含th索引和顺序(asc=0,desc=1)
工作:
谢谢你的小提琴,让我知道它在工作。当您单击列标题时,您的fiddle在没有“sortList:[[0,0]]”的情况下工作,它只是在加载时不排序。我真的不明白为什么我的代码不起作用。这让我很难堪。我正在使用分页,所以我认为这可能会导致问题。当我删除分页时,我的原始代码工作正常,所以现在我怀疑是分页中的某些东西阻止了它的工作。我使用datatables.net进行分页和筛选,我不知道为什么我不使用datatables.net进行排序。我要去检查一下。好的,我没有弄清楚为什么tablesorter不能使用datatables.net分页,但我已经设法使用datatables.net排序而不是tablesorter。感谢您确认问题不是我的代码。@careywalker更新您上面的帖子,我可以尝试帮助您。您使用的是DataTables还是tablesorter?如果您想继续使用tablesorter,请尝试my,它默认使用字母数字排序。所以在你的例子中不需要特殊的解析器,我同时使用datatables进行分页,tablesorter进行排序。问题是我的自定义表排序器解析器无法处理datatable分页。我不知道为什么我没有使用datatables排序,所以我现在已经将代码切换为使用datatables排序。我在datatables中实现了一个自定义解析器,现在一切正常。因此,这个问题现在是多余的。谢谢你看。
$("#dataTable").tablesorter({
sortList: [[0,0]],
headers: {
0: {
sorter: 'customParser'
}
}
});