我正在尝试根据行索引在数据表上的行上添加一些文本和链接。
这是我的数据表初始化部分
<script>
var datatablecompanyuser = null;
$(document).ready(function () {
$.extend(true, $.fn.dataTable.defaults, {
"searching": false,
"ordering": false,
"paging": false
});
var dataSourceUrl = "@Url.Action("CompanyUsersList", "Settings")";
datatablecompanyuser = $('#datatablecompanyuser').dataTable({
info: false,
ajax: {
"url": dataSourceUrl,
"type": "GET",
},
columns: [
{
"data": "Id",
"render": function (data, type, row) {
return "<label><input type='checkbox' value='" + data + "' name='chkGrid'><span class='text'></span></label>";
}
},
{ "data": "Fullname" },
{ "data": "Email" },
{ "data": "CitizenIdNo" },
{
"data": "CreateDate",
"render": function (data, type, row) {
return moment(parseInt(data.substr(6))).format('DD.MM.YYYY hh:mm');
}
},
{
"data": "Id",
"render": function (data, type, row) {
var table = $('#datatablecompanyuser').DataTable();
if (table.row().index() == 0){
return "<label>A</label>"}
else {
return "<label>B</label>";
}
}
},
{ "data": "Id" },
],
language: {
"url": "//cdn.datatables.net/plug-ins/1.10.10/i18n/Turkish.json"
}
});
});
</script>
我正在尝试在第一行添加文本“A”,在其他行添加“B”。
如上面的代码片段所示,我尝试在相应的列上执行类似的操作。
{
"data": "Id",
"render": function (data, type, row) {
var table = $('#datatablecompanyuser').DataTable();
if (table.row().index() == 0){
return "<label>A</label>";}
else {
return "<label>B</label>";
}
}
},
但是每一行都得到A.我做错了但却无法理解。
我需要相同的行索引确定下一列是否包含链接(但不是),但我想如果我能在这里解决它,那么休息就很容易了。
答案 0 :(得分:9)
您在渲染函数中缺少另一个名为meta
的参数,它存储行和列索引。有关渲染函数参数的详细信息,请参阅JQuery Datatables文档。
function (data, type, row, meta) {
if (meta.row == 0){
return "<label>A</label>";}
else {
return "<label>B</label>";
}
}
如文档中所述,meta参数仅在1.10.1版本中添加