8

他の誰かがこの問題に遭遇したのではないかと思いました。ビューで最初にテーブルを作成するとき、各テーブル行でカスタム属性 ( と呼びますcustomerID) を使用して、ajax 呼び出しのために渡す必要がある情報を保持しています。ただし、テーブルに行を動的に追加しているため、同じ情報 ( customerID) を行の属性に入れる方法がわかりません。現在、行を追加するときに行っている唯一のことは、列に正確にマップされる文字列の配列の配列を構築することです。これは問題なく動作しますが、余分な情報を送り返す余地はありません。

行を追加するときにその情報をビューに送り返す別の方法があれば、それを属性に格納する必要はないと思います。誰かがこれについて何か考えを持っていますか?

ありがとう。

4

2 に答える 2

1

プラグインの組み込み関数を使用して行を 1 つずつループすることで、この問題を解決できました。サーバー上で、クライアントに戻ったときに必要なすべての情報のフィールドを含むプライベート クラスを作成しました。これには、テーブル セルの実際の値だけでなく、属性に配置される情報も含まれます。これらのリスト (1 つのオブジェクト = 1 行分の情報) を作成し、それらをシリアル化し、呼び出し元の ajax メソッドに送り返します。次のコードは、シリアル化されたオブジェクトの文字列を受け取ったことを前提としており、JS を使用しています。

function(rowsToAdd) {

    var rowList = JSON.parse(rowsToAdd); // rows come back as object representations of table rows, with properties

    $.each(rowList, function(index, row) {
        var rowStringArray = [row.Prop1, row.Prop2, row.Prop3, row.Prop4];
        var rowPos = tableObject.fnAddData(rowStringArray); // add the row through the plugin, and receive the row's index in return
        var tableRowElement = tableObject.fnGetNodes(rowPos[0]); // get reference to <tr> element just added

        $(tableRowElement).attr('attributeINeeded', row.AttributeProp).attr('anotherAttributeINeeded', row.AttributeProp2);
    });
}
于 2011-01-17T15:22:48.377 に答える
0

fnCreatedRow コールバックを使用して、作成後に TR ノードを変更します。

于 2013-02-01T12:55:06.380 に答える