2013-08-01 49 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是首选......我使用两种情况下指定的情况 –