Создать динамическое событие нажатия кнопки c в ячейке с данными - PullRequest
0 голосов
/ 22 марта 2020

Пожалуйста, я пытаюсь создать кнопку с событием onlick для запуска функции в ячейке с данными, как показано ниже, она создается успешно, но я получаю сообщение об ошибке при нажатии кнопки для запуска функции.

Проблема в случае переключателя рендеринга 0. Я получаю ошибку:

SyntaxError: ожидаемое выражение, получено '}'

Мой код:

function LoadHistory(phone) {
    $.ajax({
        url: '/api/TransferFunds/' + phone,
        //data: '{"phone":"' + phone + '"}',
        type: 'Get',
        dataType: 'json',
        contentType: "application/json; charset-utf-8",
        success: function (data) {
            datatableVariable = $('#table').DataTable({
                data: data,
                autoWidth: true,
                responsive: false,
                paging: true,
                lengthChange: false,
                searching: false,
                ordering: false,
                info: true,
                //'autoWidth': false,
                //'order': [[0, "desc"]],
                columns: [
                    { 'data': 'id' },
                    { 'data': 'transType' },
                    { 'data': 'network' },
                    { 'data': 'phoneNumber' },
                    { 'data': 'internalReference' },
                    {
                        'data': 'amount',
                        "render": function (value) {
                            return "GHS" + formatmoney(value);
                        }
                    },
                    {
                        'data': 'dateSent',
                        "render": function (value) {
                            return value;
                        }
                    },
                    {
                        'data': 'status',
                        "render": function (data, type, row, meta) {
                            var evt = row['internalReference'];
                            //return GetStatus("' + evt + '");
                            //alert(nt);
                            switch (data) {
                                case 0:
                                    return '<button class="btn btn-default" onclick="return GetStatus("' + evt + '");">Pending&nbsp;&nbsp;&nbsp;</button>';
                                    break;
                                case 1:
                                    return '<button class="btn btn-success" >Successful</button>';
                                    break;
                                case 2:
                                    return '<div class="btn btn-warning">Rejected&nbsp;&nbsp;</div>';
                                    break;
                                case 3:
                                    return '<div class="btn btn-danger">Failed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>';
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                ],
                columnDefs: [
                    { "visible": false, "targets": 0 },
                     { "visible": false, "targets": 4 }                       
                ]
            });
            //$( document ).ajaxStart(function() {
            //    $( "#loading" ).show();
            // });
            $(document).ajaxComplete(function (event, request, settings) {
                //$('#loading-indicator').hide();
                //$('body').loadingModal('hide');
            });
        }
    });
}

1 Ответ

1 голос
/ 22 марта 2020

Попробуйте использовать литералы шаблона для вставки чего-либо в строку

return `<button class='btn btn-default' onclick='GetStatus("${evt}")'>Pending&nbsp;&nbsp;&nbsp;</button>`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...