Как динамически установить атрибут ID флажка в jQuery DataTable - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть таблица DataTables, заполненная данными JSON, возвращенными из сервлета Java.У каждой строки в таблице есть флажок.У меня есть код, который может добавить флажок для каждого флажка, но мне нужно выяснить, как оценить значение определенного поля в JSON и, если критерии удовлетворены, установить флажок.Я открыт для любого способа, который будет работать.До сих пор я пытался установить атрибут ID каждого флажка, когда создается таблица.Идея состоит в том, что мой код будет смотреть на значение идентификатора каждого флажка и проверять только те, которые равны определенному значению.Я хотел бы знать, возможно ли установить атрибут ID равным значению определенного поля в JSON.Сокращенная версия JSON выглядит следующим образом.Обратите внимание, что оно содержит поле «статус».Я хотел бы установить идентификатор, равный значению статуса.

{"data":[{"date":"20180101","status":"Incomplete","total_files":22,"total_size":16896},{"date":"20180102","status":"Complete","total_files":24,"total_size":19968,"itws":"itws","itws_count":24,"itws_status":"Complete"}]}

Вот фрагмент моего экземпляра кода DataTables.

$(document).ready(function () {
                var table = $('#search_results').DataTable({
                        searching: false,
                        paging: false,
                    "ajax": {
                        url: "http://localhost:8080/FileSearch-1/FileSearch"+servletUrl+"&startDate="+startDateVal+"&endDate="+endDateVal+"&startTime="+startTimeVal+"&endTime="+endTimeVal,
                        method: "GET",
                        xhrFields: {
                            withCredentials: true
                        }  
                    },
                    "columns": [
                        {
                        "className": "details-control",
                        "orderable": "false",
                        "data": "null",
                        "defaultContent": '', 
                        "render": function () {
                            return '<i class="fa fa-plus-square" aria-hidden="true"></i>';
                        },
                        "width":"15px"
                        },
                        { "render": function () {
                                return '<input type="checkbox" id="status" name="oneDay">';
                            }
                        },
                        { "data": "date" },
                        { "data": "status" },
                        { "data": "total_files" },
                        { "data": "total_size" }
                    ],
                    "order": [[1, 'asc']]
                });

Можно ли установить для атрибута ID флажка значение поля состояния в JSON?Например, если поле состояния «Завершено», тогда для идентификатора флажка будет установлено «Завершено».Я пытался делать такие вещи, как

return '<input type="checkbox" id="'+status+'" name="oneDay">';
... в этом случае таблица будет отображаться правильно, но значение ID останется пустым.

return '<input type="checkbox" id="'+data:status+'" name="oneDay">';

... в этом случае он вообще не рендерится и выдает ошибку JavaScript, в которой говорится: неожиданный токен.

1 Ответ

0 голосов
/ 14 декабря 2018

Значение атрибута элемента, будь то имя, идентификатор или пользовательский атрибут данных, действительно можно установить равным значению элемента в JSON.Вот как я это сделал.Вот мой старый код.

"render": function () {
                            return '<i class="fa fa-plus-square" aria-hidden="true"></i>';
                        },

Новый код включает в себя два изменения.Над строкой появляется новая строка, которая создает флажок.И синтаксис для установки значения атрибута был изменен.

data: 'status',
                        "render": function (data, type, row) {
                                return '<input type="checkbox" data-status="'+data+'" id="'+data+'" name="oneDay">';
                            }

Я добавил атрибут «data-status» в соответствии с предложением Луи и постараюсь использовать его вместо атрибута Id в будущем.Результатом нового кода является то, что значение атрибутов Id и data-status устанавливается равным значению поля «status» в JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...