2011-01-10 65 views
8

我想知道是否有其他人遇到此问题。当我最初在我的视图中构建我的表格时,我在每个表格行中使用了一个自定义属性(称为customerID),以保存我需要传递给ajax调用的信息。但是,我也在动态地向表中添加行,并且我无法弄清楚如何传回相同的信息(customerID)以放入该行的属性。目前,我在添加行时唯一要做的就是构建一个完全映射到我的列的字符串数组。这工作正常,但没有余地发送额外的信息。jQuery Datatables插件:如何在向表中添加行时指定行属性

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

谢谢。

+0

您不能将此属性存储在隐藏列中吗? – a1ex07 2011-01-10 23:17:39

+0

当您将一列设置为通过插件隐藏(在设置中使用bVisible)时,插件从DOM中删除列,并将其存储在插件中的变量中。所以就我自己而言,我无法从列中选择数据,因为它不再存在。 – 2011-01-11 15:52:16

回答

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); 
    }); 
} 
相关问题