jQuery Datatables插件:如何在向表中添加行时指定行属性

时间:2011-01-10 22:57:22

标签: jquery datatables

我想知道是否有其他人遇到过这个问题。当我最初在视图中构建表时,我在每个表行中使用自定义属性(称为customerID)来保存我需要传递给ajax调用的信息。但是,我也在动态地向表中添加行,我无法弄清楚如何传回相同的信息(customerID)以放入行的属性中。目前,我在添加行时唯一要做的就是构建一个字符串数组数组,这些数组完全映射到我的列。这很好,但是没有空间发回额外的信息。

我想我不需要将它存储在属性中,如果在添加行时有另一种方法将该信息发送回视图。有没有人对此有任何想法?

感谢。

2 个答案:

答案 0 :(得分: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);
    });
}

答案 1 :(得分:0)

创建TR节点后,使用fnCreatedRow callback修改TR节点。