在复选框列上排序数据表 [英] Sort datatable on checkbox column

查看:64
本文介绍了在复选框列上排序数据表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据表,其中status包含我希望能够在该列上排序的复选框



I have the following data table, where status contains checkboxes that I want to be able to sort on that column

$('#aMG_permissionTable')
    .dataTable({

        "bJQueryUI": true,
        "bPaginate": false,
        "sScrollY": "440",
        "bAutoWidth": true,
        "bFilter": true,
        "bInfo": true,
        "bSort": true,
        "aoColumns": [
            { "mData": "PermissionName" },
            { "mData": "PermissionWithDescription" },
            { "mData": "PermissionGroupWithDescription" },
            { "mData": "Status" }
            //{ "mData": "Status", "sSortDataType": "dom-checkbox" }
        ],
        "aoColumnDefs": [
            { "bVisible": false, "aTargets": [0] },
            // { "bSortable": false, "aTargets": [ 3] },
            { "sSortDataType": "dom-checkbox", "aTargets": [ 3 ] }
        ],
        "sPaginationType": "full_numbers",
        "aaSorting": [[ 0, "asc"]]
    });





我的尝试:



我尝试过以下操作,但错误是空的,调试时甚至不进入每个循环。





What I have tried:

I have tried the following, but the error is empty, when debugging it does not even enter the each loop.

/* Create an array with the values of all the checkboxes in a column */
$.fn.dataTableExt.afnSortData['dom-checkbox'] = function  ( oSettings, iColumn )
{
	var aData = [];
	$( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
		console.log(this);
		aData.push( this.checked==true ? "1" : "0" );
	} );
	//console.log(aData);
	return aData;
};

推荐答案

('#aMG_permissionTable')
.dataTable({

bJQueryUI:true,
bPaginate:false,
sScrollY:440,
bAutoWidth:true,
bFilter:true,
bInfo:true,
bSort:true,
aoColumns:[
{mData:PermissionName},
{mData :PermissionWithDescription},
{mData:PermissionGroupWithDescription},
{mData:Status}
// {mData:Status, sSortDataType:dom-checkbox}
],
aoColumnDefs:[
{bVisible:false,aTargets:[0]},
// {bSortable:false,aTargets:[3]},
{sSortDataType:dom-checkbox,aTargets:[3]}
],
sPaginationType:full_numbers,
aaSorting:[[0,asc]]
});
('#aMG_permissionTable') .dataTable({ "bJQueryUI": true, "bPaginate": false, "sScrollY": "440", "bAutoWidth": true, "bFilter": true, "bInfo": true, "bSort": true, "aoColumns": [ { "mData": "PermissionName" }, { "mData": "PermissionWithDescription" }, { "mData": "PermissionGroupWithDescription" }, { "mData": "Status" } //{ "mData": "Status", "sSortDataType": "dom-checkbox" } ], "aoColumnDefs": [ { "bVisible": false, "aTargets": [0] }, // { "bSortable": false, "aTargets": [ 3] }, { "sSortDataType": "dom-checkbox", "aTargets": [ 3 ] } ], "sPaginationType": "full_numbers", "aaSorting": [[ 0, "asc"]] });





我的尝试:



我尝试过以下操作,但错误是空的,调试时甚至不进入每个循环。





What I have tried:

I have tried the following, but the error is empty, when debugging it does not even enter the each loop.

/* Create an array with the values of all the checkboxes in a column */


.fn.dataTableExt.afnSortData ['dom-checkbox'] = function(oSettings,iColumn)
{
var aData = [];
.fn.dataTableExt.afnSortData['dom-checkbox'] = function ( oSettings, iColumn ) { var aData = [];


('td:eq('+ iColumn +')input',oSettings.oApi._fnGetTrNodes(oSettings))。每个( function(){
console.log(this);
aData.push(this.checked == true?1:0);
});
//console.log(aData);
返回aData;
};
( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () { console.log(this); aData.push( this.checked==true ? "1" : "0" ); } ); //console.log(aData); return aData; };


这篇关于在复选框列上排序数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆