【问题标题】:How to change sort order of bootstrap-table.js column如何更改 bootstrap-table.js 列的排序顺序
【发布时间】:2016-08-15 03:05:13
【问题描述】:

在最后一列下面的 html 中被排序为字符串,但我需要将其排序为十进制。我似乎可以找到实现这一目标的文档。 Javascript 来自https://github.com/wenzhixin/bootstrap-table

<table id="table" data-toggle="table" data-search="true" data-show-columns="true" class="table table-striped">
   <thead>
    <tr>
      <th data-sortable="true">Account</th>
      <th data-sortable="true">1-30</th>
      <th data-sortable="true">30+</th>
      <th data-sortable="true">60+</th>
      <th data-sortable="true">90+</th>
      <th data-sortable="true">Unit Total</th>
      <th data-sortable="true">Total</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="#">st0121</a></td>
      <td>700.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>200.00</td>
      <td>920.00</td>
    </tr>
    <tr>
      <td><a href="#">st0122</a></td>
      <td>1,200.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>8,000.00</td>
      <td>0.00</td>
      <td>9,200.00</td>
    </tr>
    <tr>
      <td><a href="#">st0123</a></td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>200.00</td>
    </tr>
    <tr>
      <td><a href="#">st0124</a></td>
      <td>160.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>160.00</td>
      <td>360.00</td>
    </tr>
    <tr>
      <td><a href="#">st0125</a></td>
      <td>40.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>40.00</td>
      <td>400.00</td>
    </tr>
    <tr>
      <td><a href="#">st0126</a></td>
      <td>80.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>0.00</td>
      <td>80.00</td>
      <td>480.00</td>
    </tr>

  </tbody>
</table>

小提琴是https://jsfiddle.net/cmzua2ph/3/

有什么想法/建议吗?

我也很惊讶不需要 .ready() 初始化。 这是如何实现的?

好的,我想我已经准备好投反对票了。 :-)

【问题讨论】:

  • 我不知道你想做什么,我把你的小提琴的值改成了小数,它排序正常。
  • 而且它不需要 .ready() 初始化,因为它已经在 .js 文件中完成了。
  • 你是怎么把它变成小数的? bootstrap-table.js 第 7 行的 .ready 定义是什么?
  • 我没有改变任何东西。我将 700.20、700.10 和 700.05 放在第一列(在 HTML 中),然后按排序箭头,它可以工作。不,它在最后 3 行。如果向下滚动到最后一行,您将看到:$('[data-toggle="table"]').bootstrapTable();。这就是初始化。
  • 您可以保存您的小提琴版本并在此处发布链接吗?

标签: twitter-bootstrap-3 bootstrap-table


【解决方案1】:

我不知道如何更改您的 HTML,

但我的解决方案是将代码注入 bootstrap-table.js :

在 bootstrap-table.js 第 952 - 953 行,您会看到以下代码:

var aa = getItemField(a, name, that.options.escape),
    bb = getItemField(b, name, that.options.escape),

把它改成这段代码:

var aa = getItemField(a, name, that.options.escape).replace(",",""),
    bb = getItemField(b, name, that.options.escape).replace(",",""),

它基本上在排序时删除所有逗号。

这是小提琴:

https://jsfiddle.net/h0wrpp7j/2/

祝你好运

【讨论】:

  • 我开始认为这是 bootstrap-table.js 中的错误。我正在尝试找到更好的解决方案 - 我不喜欢从排序的信息中删除“,”。感谢您为我解开 JS。
  • 嗯,这是解决你的问题的方法之一,我没有对数据表 JS 挖掘太深。大声笑
  • 更好的解决方案可能是重现它们的排序功能,添加这种扭曲,并将其用作自定义排序。这样我们就不用修改库了,所以我们可以用cdn来做bootstrap-table
猜你喜欢
  • 2019-02-22
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 2017-01-15
  • 2013-12-08
  • 1970-01-01
相关资源
最近更新 更多