2013-08-01 83 views
0

我有一個用例,我想在特定的列索引上呈現錨鏈接。它可以使用fnRowCallback和aoColumnDefs來實現。aoColumnDefs vs fnRowCallback更好更快

所以我想知道哪一個更好更快。

對於這兩種情況下的代碼片段:

aoColumnDefs

"aoColumnDefs": [ 
{ 
    "fnRender": function (oObj) { 
    return '<a href="abc.html">' + oObj.aData[8]+ '</a>'; 
    }, 
    "aTargets": [8] 
}, 
] 

fnRowCallback

"fnRowCallback" : function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 

$("td:eq(8)", nRow).html('<a href="abc.html">' + aData[8]+ '</a>' 
);} 

回答

1

相信隨着最新建立的DataTable fnRender已被棄用的,你應該使用mData和mRender

mRender優選用於使用超過FnRowCallback服務器端實現來創建數據的URL

這裏是一個例子,將其添加到aoColumns爲字段,並取出FnRowCallback

{ "mData": null , 
    "mRender" : function (data, type, full) { 
    return '<a href="abc.html">'+full[8]+'</a>';} 
    }, 

文檔: http://www.datatables.net/release-datatables/examples/advanced_init/column_render.html

+0

mRender更像是aColumnDefs。但我認爲fnRowCallback給你更多的靈活性。通過aoColumnDefs和mRender,單個主題將應用於所有行。但是fnRowCallBack把每行的控制放在用戶手上 –

+0

關於這個問題,每行放置一個錨點鏈接,文檔說最好的方法是使用mRender,但是我同意你的觀點,如果你需要說每個評估數據然後做一個動作(如添加一個基於行/列值的等級顏色類型),那麼fnRowCallback是首選......我使用兩種情況下指定的情況 –