1

私は js のプラグイン DataTables を初めて使用しましたが、特定のデータを選択して列に並べ替える方法がわかりませんでした。たとえば、私のテーブルには、「評価」の列があります。他の値ではなく、パーセンテージのみで並べ替えたいと思います。

 <td>
        <span class="rating">100.00%</span>
        <span class="voteup">3 <img src='/images/voteup.png' alt='voteup' /></span>
        <span class="votedown"> 0 <img src='/images/votedown.png' alt='votedown' /></span>
         <br /> 
        <span class="comment">0 comments</span> <br/> 
        <span class="views">17 views</span>
 </td>

(php で生成された) dom から直接データをロードします。これが js での DataTables の生成です。

var oTable;


$(document).ready(function() {

oTable = $('#BuildList').dataTable({
    "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
    "iDisplayLength": -1,
    "aoColumns": [
        { "bSortable": false},
        { "bSortable": false},
        { "bSortable": false},
        { "asSorting": [ "asc" ] },
        { "asSorting": [ "desc" ] },
    ]
});

// To sort by default the column 4
oTable.fnSort([[3, 'asc']]);

});
4

1 に答える 1

1

問題が解決しました

$.fn.dataTableExt.oSort['rating-desc'] = function(x,y) {

x = parseFloat($(x).first().html());
y = parseFloat($(y).first().html());

return ((x < y) ?  1 : ((x > y) ? -1 : 0));
};
$(document).ready(function() {




oTable = $('#BuildList').dataTable({
    "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
    "iDisplayLength": -1,
    "aoColumns": [
        { "bSortable": false},
        { "bSortable": false},
        { "bSortable": false},
        { "asSorting": [ "asc" ] },
        { "asSorting": [ "desc" ], "sType": "rating" }
    ]
});

// To sort by default the column 4
oTable.fnSort([[3, 'asc']]);

});
于 2012-06-19T12:25:49.310 に答える