0

私はゴールという名前の列を持つテーブルを持っています。そのテーブルは次のようにルビで埋められます:

<table  data-sorted="myTable">
  <thead>
    <tr>
      <th><a rel="tooltip" title="Name">Name</a></th>
      <th>subname</th>
      <th>Days</th>
      <th>%</th>
      <th>Goal</th>
      <th>achieved</th>
    </tr>
  </thead>
<tbody>
 <% @results.each do |id, rows| %>
 <% rows.each do |row| %>
    <tr>
      <td>
        <b><%= row[:name] %></b></td>
      <td><%= row[:subname] %></td>
      <td><%= row[:days] %></td>
      <td class="<%= status_indicator(row[:percentage].to_f) %>"><%= number_to_percentage(row[:percentage], :precision => 2)%></td>
      <td class="{sorter: 'thousands'}"="<%= row[:goal].to_i %>"><%=number_with_delimiter(row[:goal].to_i) %></td>
      <td class="achieved"><%= row[:achieved].to_i %></td>
    </tr>
  <% end %>
<% end %>
  </tbody>
</table>

私のオンライン調査によると、これはjqueryにあります。

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'thousands',
    is: function(s) { 
        // return false so this parser is not auto detected 
        return /^[0-9]?[0-9,\.]*$/.test(s);
    }, 
    format: function(s) {
        // format your data for normalization 
        return jQuery.tablesorter.formatFloat( s.replace(/,/g,'') );
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 

$(function() {
    $("[data-sorted=myTable]").tablesorter({
        headers: {
            6: {//zero-based column index
                sorter:'thousands'
            }
        }
    });
});

並べ替えはテーブルのすべての列で機能しますが、1000 の区切り記号がある列では、結果としてこれが得られます

  1. これは、ロード時にテーブルが開始される方法です

これは、ロード時にテーブルが開始される方法です

  1. これは、ソート時にテーブルがどのようにレンダリングされるかです

これは、ソート時にテーブルがどのようにレンダリングされるかです

4

1 に答える 1

1

ヘッダーオプションが「千」ソーターを7番目の列(ゼロベースのインデックス)に割り当てているようです

headers: {
    6: {//zero-based column index
        sorter:'thousands'
    }
}

メタデータがそれを5列目に割り当てているところ

<td class="{sorter: 'thousands'}"...

したがって、メタデータ プラグインを追加してクラス名を機能させるか、ヘッダー オプションを変更して適切な列をターゲットにする必要があります。

headers: {
    4: {//zero-based column index
        sorter:'thousands'
    }
}
于 2013-09-17T20:10:15.823 に答える