使用Jquery Datatables对数据排序属性中的值进行自定义排序

2021/01/15 16:51 · jquery ·  · 0评论

我必须对Jquery Datatables做一些自定义排序。我不想为每个自定义排序编写自定义排序功能。

我想定义一个值进行排序,如果定义了值,则让数据表忽略原始列值。

例如:

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

我希望Jquery Datatables对此列进行数字排序111123

<td data-sort="19801220">20-12-1980</td>

我希望Jquery Datatables对此列进行数字排序19801220

<td>a string</td>

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

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

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

您可以使用数据顺序属性,例如

<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- *属性

我找到了一个适用于我的简单解决方案,不需要太多代码或对datatables.js进行更改。

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

而是data-sort可以使用HTML注释标记。

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

变成

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

通过零填充,int它们将被排序为string零填充使排序的行为符合您的预期:将整数从高到低排序。

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

本文地址:http://jquery.askforanswer.com/shiyongjquery-datatablesduishujupaixushuxingzhongdezhijinxingzidingyipaixu.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!