我正在使用数据库和jquery行分组。
这是小提琴演示
正如您所看到的,这是一个普通的表,但是对于行分组,绿色的是行组,但是没有办法像我可以用Name和Score列那样对它们进行排序,唯一的方法是在代码中将它们更改为"asc"或"desc"。
$(document).ready(function () {
$('#main').dataTable({
"bLengthChange": false,
"bPaginate": false,
"bFilter": false,
"bInfo": false
}).rowGrouping({
sGroupingColumnSortDirection: "asc", //this one is repsonsible for the group sortings
bExpandableGrouping: true
});
});这样可以工作,但用户没有选择或排序分组的方法。
我想做一个选择下拉,所以它将排序分组相应的用户选择。
<label>
Sort place by:
<select>
<option value="place">Ascending</option>
<option value="place">Descending</option>
</select>
</label>那么,是否可以使用这个select下拉列表对分组进行排序?
发布于 2014-12-24 12:39:34
首先,为下拉列表提供一个id,并为这些选项提供适当的值。然后,在下拉列表的"onchange“事件上,您需要调用datatable "fnSort”函数。
<select id="selectSort">
<option value="Ascending">Ascending</option>
<option value="Descending">Descending</option>
</select>在jquery document.ready部分中包括以下代码。
$("#selectSort").change(function() {
var oTable = $('#main').dataTable();
var sOption = $(this).val();
if(sOption == "Ascending") {
var sType = 'asc';
}
else {
var sType = 'desc';
}
//code for two columns, change if you have more columns.
oTable.fnSort( [ [0,sType], [1,sType] ] );
});更新小提琴:http://jsfiddle.net/d03ebwdj/1/
更新:在您的分组方法中,很难根据分组进行排序。您可以做的是,创建第三列为"Place“。把它藏起来。您可以使用"drawCallback“函数突出显示分组。请参阅这里
https://stackoverflow.com/questions/27636549
复制相似问题