我正在使用来自这里的 jquery 插件 Datatables 。
问题是它的行为不像它应该的那样。我在 TableTools 中有 2 个按钮,全选和全选,它们背后都有默认代码,我没有对它们进行任何更改。
我还使行多选。这是数据表声明的代码以及几乎所有重要的东西。
var oTable;
var gaiSelected = [];
oTable = $('#listeLigne').dataTable({
"sDom": 'T',
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"oLanguage": oLanguage,
"bLengthChange": false,
"iDisplayLength": -1,
"oTableTools": {
"sSwfPath" : "<?= _s("js/DataTables-1.9.4/extras/TableTools/media/swf/copy_csv_xls_pdf.swf") ?>",
"aButtons": [
{
"sExtends": "collection",
"sButtonText": "Sélection",
"aButtons": [
{
"sExtends": "select_all",
"sButtonText": "Toutes"
},
{
"sExtends": "text",
"sButtonText": "Actives"
},
{
"sExtends": "text",
"sButtonText": "Inactives"
},
{
"sExtends": "text",
"sButtonText": "Suspendues"
},
{
"sExtends": "select_none",
"sButtonText": "Aucune"
}
]
},
{
"sExtends": "collection",
"sButtonText": "Sauvegarder",
"aButtons": [ "csv", "xls", "pdf" ]
},
{
"sExtends": "print",
"sButtonText": "Imprimer"
}
]
},
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
if ( jQuery.inArray(aData[0], gaiSelected) != -1 )
{
$(nRow).addClass('row_selected');
}
return nRow;
}
});
$('#listeLigne tbody tr').live('click', function () {
var aData = oTable.fnGetData( this );
var iId = aData[0];
if ( jQuery.inArray(iId, gaiSelected) == -1 )
{
gaiSelected[gaiSelected.length++] = iId;
}
else
{
gaiSelected = jQuery.grep(gaiSelected, function(value) {
return value != iId;
} );
}
$(this).toggleClass('DTTT_selected');
} );
发生的情况是,如果我单击全选,它将全部选中,然后如果我单击全选,它会取消选择所有内容。但是,如果我单击其中一些并使它们被选中,然后按选择无,则没有任何反应。然后,如果我按全选然后全选,它确实有效。
我一直在查看数据表的内部代码,尝试了许多来自网络的不同解决方案(即使我没有看到很多人遇到同样的问题)。
索取您可能需要的任何其他信息。感谢您提供每一点信息和/或帮助。谢谢你。