Angular Datatables在超链接中对文本进行排序,而不是对href进行排序。

5

我正在尝试对包含锚点标签的列进行字母数字排序,但似乎锚点标签会“拦截”排序功能。它看起来像以下内容:

<tbody>
    <tr><td><a href="/1"></a>Fox</td><tr>
    <tr><td><a href="/2"></a>Cow</td><tr>
    <tr><td><a href="/3"></a>Dog</td><tr>
</tbody>

它将分别返回Fox,Cow,DogDog,Cow,Fox。如何基于a标签的内容而不是a标签本身的文本进行排序?

ctrl.dtOptions = DTOptionsBuilder.newOptions()
    .withPaginationType('full_numbers')
    .withOption("order", [
        [1, "asc"]
    ])
    .withOption('paging', false)
    .withOption('searching', false)
    .withOption("sDom", '<"top">rt<"bottom"flp><"clear">');

ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1)
];

1:不可排序
2:字母数字(问题列)
3-10:字母数字 - td 只有数字,因此可以很好地排序


你目前使用的是什么排序函数?请展示给我们代码。 - depperm
@depperm 喜欢这句话,“给我们看代码!” - Beyers
编辑问题,复制您的代码,选择所有代码并按“Ctrl + k”格式化(至少在Windows上,不清楚其他系统)。 - Sudhansu Choudhary
@depperm 有什么想法吗? - chrisphilton
1个回答

1
尝试使用.withOption('type', 'html')来处理包含HTML的列,如下所示:
ctrl.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).notSortable(),
    DTColumnDefBuilder.newColumnDef(1).withOption('type', 'html')
];

来自文档:

html - HTML标签的基本字符串处理

排序 - 去除HTML标签后进行排序
过滤 - 从过滤字符串中删除HTML标签

更多信息请参见columns.type


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接