使用Jquery Datatables对data-sort属性中的值进行自定义排序

 佳蓁政睿9 发布于 2023-02-13 19:25

我必须使用Jquery Datatables进行一些自定义排序.我不想为每个自定义排序编写自定义排序函数.

我想定义一个要排序的值,并且如果定义了值,则Datatables会忽略原始列值.

例如:

E 1.111,23

我希望Jquery Datatables以数字方式对此列进行排序111123.

20-12-1980

我希望Jquery Datatables以数字方式对此列进行排序19801220.

a string

我希望Jquery Datatables按原始值对此列进行排序a string.

http://www.datatables.net/plug-ins/sorting有"隐藏标题数字排序",它接近我想要的,但要求我指定这个自定义排序适用于哪一列的每个数据表.我有太多不同大小的数据表,可以在合理的时间内完成.我只想让Datatables总是对这个隐藏的值/ data-*属性进行排序(如果它存在).无需在特定列上进行自定义排序定义.

相关:jQuery DataTables:如何按自定义参数值而不是单元格的内容进行排序?但遗憾的是,没有回答如何简单地通过自定义参数进行排序,而是指向自定义排序脚本.

2 个回答
  • 例如,您可以使用数据顺序attr

    <table class="table table-bordered table-hover">
    <thead>
        <tr>
            <th>Date</th>
            <th>Count</th>
        </tr>
    </thead>
    <tbody>
    <?php
       $count = 0;
       foreach($users as $user) {?>
          <tr>
             <td data-order="<?php echo $count ?>">
                <?php echo $user['createdDate']; ?>
             </td>
             <td>
                <?php echo $user['count']; ?>
             </td>
             </tr>
       <?php
          $count++;
       }?>
       <tr>
          <td data-order="999999999999999999999999999"> <!--always last-->
              Total
          </td>
          <td>
             <?php echo count($users); ?>
          </td>
      </tr>
    

    更多信息HTML5 data-*属性

    2023-02-13 19:27 回答
  • 我找到了一个适合我的简单解决方案,并且不需要太多代码或更改datatables.js.

    它与问题的要求非常相似,但并不完全相同.

    而不是data-sort你可以使用HTML注释标签.

    <td data-sort="111123">E 1.111,23</td>

    <td><!-- 000000111123 -->E 1.111,23</td>

    通过零填充,int它们将被分类为a string.零填充使排序的行为与您期望的一样:将整数从高到低排序.

    解决方案适用于日期,整数和字符串.对于日期和整数,您可以使用脚本语言以您希望的方式输出它们(例如:零填充,格式化为yyyy-mm-dd).

    2023-02-13 19:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有