Функция рендеринга jQuery Datatable не работает для нескольких столбцов - PullRequest
0 голосов
/ 28 августа 2018

Я использую JQuery Datatable с обработкой на стороне сервера, вот мой код. Он отлично работает, как только я добавляю еще один столбец для кнопки действий, он просто прекращает рендеринг. Любая помощь будет оценена.

 $("#table1").dataTable({

        "processing": true,
        "serverSide": true,
        "info": true,
        "lengthMenu": [[5, 35, 50, -1], [5, 35, 50, "All"]],
        "ajax": {
            "url": "/Customer/customers",
            "type": "POST"
        },
        "columns": [
            { "data": "displayName", "orderable": true },
            { "data": "email", "orderable": true },
            { "data": "state", "orderable": true },                
            {
                "data": "licenses", "orderable": true,
                "render": function (data, type, row) {
                    if (type === 'display') {
                        if (data > 0)
                            return '<i class="fa fa-check" aria-hidden="true"></i>';
                        else
                            return '<i class="fa fa-times" aria-hidden="true"></i>';
                    }
                    return data;
                }
            },
        ]           
    });       

Вот еще один столбец с кнопками действий, которые я добавляю после лицензий в массиве столбцов.

            {
                "data": null, "orderable": false, "render": function (data, type, row) { return '<a href="' + data + '">Download</a>'; }
            },

Может кто-нибудь сказать мне, что здесь происходит не так?

1 Ответ

0 голосов
/ 28 августа 2018

На html-странице, если у вас меньше столбцов или меньше, чем количество столбцов, которые вы визуализируете с помощью ajax, будет отображаться ошибка. Поскольку вы говорите, что он показывает ошибку при добавлении еще одного столбца, я думаю, проблема в том, что на вашей HTML-странице меньше столбцов. Если вы исправите количество столбцов, я думаю, что это будет работать.

...