我有这个代码清单,我想添加一个到datatables的链接,我收到一个错误: DataTables警告(table id ='example'):从第0行的数据源请求未知参数'3',当我单击确定时,它不会加载我添加的链接,这是我的代码
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var oTable = $('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": "<?php echo base_url('operations/dataDisplayBanks/'); ?>",
"aoColumns": [
{ "mData": "bank_id" },
{ "mData": "bank_name" },
{ "mData": "absolute_amount" },
{
"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
$('td:eq(3)', nRow).html('<?php echo base_url() ?>operations/display/' + aData[0] + '">' +
aData[0] + '</a>');
return nRow;
}
},
]
} );
} );
</script>
<div id="demo">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Client ID</th>
<th>Client Name</th>
<th>Absolute Limit</th>
<th>History</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</table>
</div>
答案 0 :(得分:4)
编辑我的意思是说mRender更适合在服务器端实现上使用FnRowCallback来从数据创建URL
这是一个使用您的代码的示例,添加它并删除FnRowCallback
{ "mData": null , //its null here because history column will contain the mRender
"mRender" : function ( data, type, full ) {
return '<a href="<?php echo base_url(); ?>operations/display/'+full[0]+'">'+full[0]+'</a>';}
},
文档:http://www.datatables.net/release-datatables/examples/advanced_init/column_render.html
答案 1 :(得分:1)
您需要在aoColumns
中输入历史记录属性,这样可以解决您看到的错误。数据表期望表中每列的值,即使您计划以编程方式设置该值。我还没有找到解决方法。
此外,您的fnRowCallback
不应该是aoColumns
的一部分。 fnRowCallback
应该是datatables配置对象的一部分(即aoColumns
的对等方)。
您的配置将如下所示:
{
"bProcessing": true,
"sAjaxSource": "<?php echo base_url('operations/dataDisplayBanks/'); ?>",
"aoColumns": [
{ "mData": "bank_id" },
{ "mData": "bank_name" },
{ "mData": "absolute_amount" },
{ "mData": "history" } //need an entry here for history
],
"fnRowCallback": function(nRow, aData, iDisplayIndex) {...}
}
您的数据将如下所示:
[{
"bank_id":1,
"bank_name": "Fred's Bank",
"absolute_amount": 1000,
"history": ""
},
...
]