基于行索引的Jquery数据表操作

时间:2016-04-08 11:00:31

标签: jquery datatables

我正在尝试根据行索引在数据表上的行上添加一些文本和链接。

这是我的数据表初始化部分

 <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.我做错了但却无法理解。

我需要相同的行索引确定下一列是否包含链接(但不是),但我想如果我能在这里解决它,那么休息就很容易了。

1 个答案:

答案 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版本中添加