如何更改bootstrap-table.js列

时间:2016-08-15 03:05:14

标签: twitter-bootstrap-3 bootstrap-table

在下面的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()初始化。 这是如何实现的?

好的,我想我已经准备好了。 : - )

2 个答案:

答案 0 :(得分: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/

祝你好运

答案 1 :(得分:0)

感谢Marcel的指针和这个链接:Validate decimal numbers in JavaScript - IsNumeric()我想我想出了一个更好的解决方案:从

更改bootstrap-table.js的第974行

if($ .isNumeric(aa)&amp;&amp; $ .isNumeric(bb)){

if(!isNaN(parseFloat(aa))&amp;&amp;!isNaN(parseFloat(aa))){

似乎效果更好。