Как установить или отключить функцию выбора в таблицах данных с использованием источника ajax - PullRequest
0 голосов
/ 09 июля 2020

Что я хочу сделать, это после загрузки данных из datatables ajax, флажок ввода автоматически устанавливается или снимается в зависимости от значения поля MenuAccess, я уже пробовал этот код, и он работает, но

 data: 'MenuAccess',   
render: function (data) {
                            if (data == 1) {
                                return '<input type="checkbox" checked />';
                            }
                            else {
                                return '<input type="checkbox" />';
                            }
                        }

Но я хочу использовать встроенные функции select-box из datatables

Вот мой код, в поле MenuAccess он либо 1, либо 0, 1 для отмеченного и 0 для снятого

function GetMenuAccess() {

        tbMenuAccess = $('#tbMenuAccess').DataTable({
            paging: false,
            //responsive: true,
            autoWidth: true,
            processing: true,
            initComplete: function () {
                //$('#').text(this.api().data().length);
            },
            ajax: {
                type: 'post',
                contentType: 'application/json; charset=utf-8',
                url: 'OBUtilityWS.asmx/GetMenuAccess',
                data: function (d) {

                    var objParams = {};
                    objParams['DesigID'] = $(SelectDesignation).val();
                    objParams['Progcode'] = ProgCode;

                    d.parameters = objParams;
                    return JSON.stringify(d);
                },
                dataSrc: function (json) {
                    return JSON.parse(json.d);
                }
            },
            columns: [
                { data: "MenuID" },
                { data: "MenuDesc" },
                { data: "MenuAccess" },
                {
                    data: "",
                    defaultContent: ""
                    
                }
            ],
            columnDefs: [
                {
                    orderable: false,
                    className: 'select-checkbox',
                    targets: 3
                },
                {
                    targets: [0],
                    visible: false
                },
                {
                    targets: [2],
                    visible: false
                },
                {
                    targets: [1],
                    className: 'dt-left',
                    orderable: false
                }
            ],
            select: {
                style: 'os',
                //selector: 'td:first-child'
                selector: 'td:nth-child(3)',
                info: false
            },
        });
    }
...