1

私の DataTable は、ユーザーが行を選択できるように設定されています。テーブルの横には、ユーザーがテーブル上のデータ行を移動できるようにする「上へ」および「下へ」ボタンがあります。実際に行を移動するには、選択したノードの行番号を知る必要があります。これを行う最も明白な方法は、fnGetPosition() を使用することでした。ただし、FireBug を使用してコードをデバッグすると、fnGetPosition() が関数ではないことがわかります。

これは、Up ボタンが押されたときに呼び出される関数です。

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
}

誰かが問題を見つけた場合は、どんな助けでも大歓迎です。

4

1 に答える 1

1

table.fnGetPosition(row[0]);//選択したノードの行番号を取得します。FireBug は table.fnGetPosition が関数ではないことを教えてくれます

そして、それは正しいです - ここでは、TableTools インスタンスとして「テーブル」があり、その fnGetPosition は DataTable メソッド ( http://datatables.net/api ) です。fnGetPosition を使用することはほとんどありません。これにより、テーブル内の位置ではなく、DataTables キャッシュ内のデータの内部インデックスが得られます。

あなたが望むかもしれないのは、この API メソッドです: http://datatables.net/plug-ins/api#fnGetAdjacentTrは、ソート、フィルタリングなどを考慮して、次または前の TR 要素を提供します。内部ソートはあなたが行った操作を上書きするため、DataTable で DOM メソッドを使用します - http://datatables.net/faqs#appendを参照してください

于 2012-06-28T07:24:21.270 に答える