对数据表中的行分组进行排序
sort row groupings in datatables
我正在使用datables和jquery行分组。
这是JSFIDDLE演示
如您所见,这是一个普通的表,但使用行分组时,绿色的表是行组,但是无法像使用"名称和分数"列那样单击对它们进行排序,对它们进行排序的唯一方法是在此代码中将sGroupingColumnSortDirection:
更改为"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>
那么是否可以使用此选择下拉列表对分组进行排序?
首先,为下拉列表提供一个 id,并为选项提供适当的值。然后,在下拉列表的"onchange"事件上,你需要调用数据表"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/
更新:在您的分组方法中,很难根据分组进行排序。您可以做的是,创建第三列作为"地点"。将其设置为隐藏。您可以使用"drawCallback"函数突出显示分组。请参考这里
相关文章:
- 对角度数据表中括号内的数字进行排序
- 对损坏的子行进行排序的数据表
- 数据表排序但对行进行分组
- 数据表通过分析一列的值对其进行排序
- 排序数据表
- 基于单选按钮和复选框的数据表排序
- 如何对数据表中的容量列进行排序
- 使用 IP 地址和超链接对数据表进行排序
- Javascript在素数面的数据表中排序后丢失
- AJAX使用jQuery可排序(非表单)发布附加数据
- 禁用jquery数据表中的行重新排序
- 如何在两个不同的选项卡(jQuery数据表)上同步处理可排序表
- 使用J-query数据表,美国日期格式的自定义排序不起作用
- 通过自定义排序 ID 对数据表列进行排序
- (钛工作室)显示带有排序数据的表视图
- 数据表 aa排序未按正确的列排序
- 我无法使用行重新排序替换数据表中的行
- 为什么不能关闭我的数据表的排序
- j查询数据表禁用特定行中的排序
- 我如何排序数据表列,其中包含十进制值与$符号- JQuery数据表