如何使用数据表获取用户所选节点的行号



My DataTable 设置为允许用户选择一行。在表格的一侧,我有"向上"和"向下"按钮,允许用户移动表格上的数据行。要实际移动行,我需要知道所选节点的行号,最明显的方法是使用 fnGetPosition()。但是,当我使用 FireBug 调试代码时,它告诉我 fnGetPosition() 不是一个函数。

这是我按下向上按钮时调用的函数:

function moveRowUp()
{       
var table = TableTools.fnGetInstance('firstConditionalTable');//Initialize table as an instance of TableTools
var rows = $("#firstConditionalTable tr");//Making a jQuery objecet of the tr elements in the table
var row = table.fnGetSelected();//fnGetSelected returns an array of all selected nodes. row should be assigned an array.
var index = table.fnGetPosition(row[0]);//Get row number of selected node. FireBug tells me that table.fnGetPosition is not a function.
alert(index);//Testing purposes
rows.eq(index).insertBefore(rows.eq(index - 1));//Does the actual moving up
}

如果有人看到任何问题,任何帮助将不胜感激。

table.fnGetPosition(row[0]);//Get 选定节点的行号。FireBug告诉我table.fnGetPosition不是一个函数

这是正确的 - 这里有"table"作为TableTools实例,它fnGetPosition是DataTable方法(http://datatables.net/api)。很少有人想要使用 fnGetPosition - 它为您提供数据表缓存中数据的内部索引,而不是表中的位置。

您可能想要的是这个 API 方法:http://datatables.net/plug-ins/api#fnGetAdjacentTr 为您提供下一个或上一个 TR 元素 - 考虑到排序、过滤等。但是请记住,您不能只将 DOM 方法与 DataTable 一起使用,因为它的内部排序会覆盖您所做的操作 - 请参阅 http://datatables.net/faqs#append

最新更新