设想
我第一次使用数据表( @version 1.9.4)向用户显示数据。我成功地通过 ajax 检索数据并将它们绑定到数据表。
现在我想添加额外的列来让用户处理记录。为简单起见,目的是添加一个带有 onclick 处理程序的按钮,该处理程序检索“点击”记录的数据。
在我的计划中,我会将与“点击”记录对应的 json 项绑定到 onclick 处理程序。
到现在为止,如果我在 DOM 中添加额外TH
的操作列,数据表代码会出现错误:
Requested unknown parameter '5' from data source for row 0
问题
如何设置自定义列?如何用 HTML 填充他们的内容?
这是我的实际配置。
HTML
<table id="tableCities">
<thead>
<tr>
<th>country</th>
<th>zip</th>
<th>city</th>
<th>district code</th>
<th>district description</th>
<th>actions</th>
</tr>
</thead>
<tbody></tbody>
</table>
Javascript
$('#tableCities').dataTable({
"bPaginate": true,
"bLengthChange": false,
"bFilter": true,
"bSort": true,
"bInfo": false,
"bAutoWidth": true
, "bJQueryUI": true
, "bProcessing": true
, "bServerSide": true
, "sAjaxSource": "../biz/GetCitiesByZip.asp?t=" + t
});
示例 Json 结果
{
"aaData":
[
[
"IT",
"10030",
"VILLAREGGIA",
"TO",
"Torino"
],
[
"IT",
"10030",
"VISCHE",
"TO",
"Torino"
]
],
"iTotalRecords": 2,
"iTotalDisplayRecords": 2,
"iDisplayStart": 0,
"iDisplayLength": 2
}
编辑
丹尼尔是对的。解决方案是在 中设置自定义列aoColumnDefs
,指定mData
和mRender
属性。特别是mRender
让我们定义自定义 html 和 javascript。
/* inside datatable initialization */
, "aoColumnDefs": [
{
"aTargets": [5],
"mData": null,
"mRender": function (data, type, full) {
return '<a href="#" onclick="alert(\''+ full[0] +'\');">Process</a>';
}
}
]