2011-01-10 62 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); 
    }); 
} 
相關問題