我有一个带有jQuery DataTables的表,并希望允许手动对行进行重新排序。因此,我使用的是jQuery插件,可在DataTables中对行进行重新排序。
问题在于,通过启用行重新排序,我无法对表进行排序。rowreordering-plugin的程序员已明确说明了插件的工作方式,请参见此处的讨论:https : //code.google.com/p/jquery-datatables-row-reordering/issues/detail? id =1
现在,我想启用排序功能,即使在手动重新排序之后,也可以在排序之后重新排序。如果排序破坏了手动顺序并对其进行了“逆转”,那不是问题。
我想这是插件源代码中最相关的部分:
return this.each(function () {
var oTable = $(this).dataTable();
var aaSortingFixed = (oTable.fnSettings().aaSortingFixed == null ? new Array() : oTable.fnSettings().aaSortingFixed);
aaSortingFixed.push([properties.iIndexColumn, "asc"]);
oTable.fnSettings().aaSortingFixed = aaSortingFixed;
for (var i = 0; i < oTable.fnSettings().aoColumns.length; i++) {
oTable.fnSettings().aoColumns[i].bSortable = false;
/*for(var j=0; j<aaSortingFixed.length; j++)
{
if( i == aaSortingFixed[j][0] )
oTable.fnSettings().aoColumns[i].bSortable = false;
}*/
}
oTable.fnDraw();
通过在for循环中将aoColumns [i] .bSortable设置为“ true”,可以在表中启用排序,但是如果我单击列,则没有任何效果。我正在寻找一种解决此问题的方法。问题讨论的最后一个条目说了一些有希望的东西,但它似乎对我不起作用。
我正在使用DataTables 1.9.0和jQuery 1.7.1,因为该插件不适用于Datatables 1.10或jQuery 2。
使用dataTables 1.10.x和新的“本机” RowReorder插件。将以下文件包含到您的项目中:
<script src="https://cdn.datatables.net/rowreorder/1.0.0/js/dataTables.rowReorder.min.js"></script>
<link href="https://cdn.datatables.net/rowreorder/1.0.0/css/rowReorder.dataTables.min.css" type="text/css" rel="stylesheet">
$('#example').DataTable( {
rowReorder: true
});
演示在这里-> http://jsfiddle.net/0f9Ljfjr/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句