2012-06-19 1 views
1

Я новичок с плагинами DataTables в js, и я не нашел, как я могу выбрать конкретные данные для сортировки в столбце. Например, в моей таблице у меня есть столбец с «Оценка». Я хотел бы сортировать его только с процентом, а не с другими значениями.Plugin 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> 

Я загружаю данные непосредственно из dom (сгенерированные php), вот моя генерация DataTables в js.

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']]); 

}); 

ответ

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']]); 

});