получить данные строки вложенной таблицы в datatable - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над таблицами данных, и мне нужно создать вложенную таблицу по нажатию кнопки. Я сделал это до сих пор, но не смог получить данные строки вложенной таблицы данных.

Я использовал этот пример. Это то, что я сделал до сих пор, чтобы получить данные строки.

oInnerTable = $('#opiniondt_' + iTableCounter).dataTable({
        data: newArr, 
        autoWidth: true, 
        deferRender: true, 
        info: false, 
        lengthChange: false, 
        ordering: false, 
        paging: false, 
        scrollX: false, 
        scrollY: false, 
        searching: false, 
        columns: [
            {   
                className:      'inner-details-control',
                orderable:      false,
                data:           null,
                defaultContent: '' 
            },
            {"mData": "datasetId"}, 
            {"mData": "name"},
            {"mData": "datasetType", "visible": false},
            {"mData": "parentDatasetID", "visible": false},
            {"mData": "description", "visible": false},
            {"mData": "totalRecords"},
            {"mData": "creationTimeStr"},
            {"mData": "endTimeStr"},
            {bSortable: false,
                mRender: function (o) {return '<button class="btn btn-blue innerDatasetDetailButton" id="innerDatasetDetailButton"><i class="fa fa-check"></i></button>'; }
            }
        ],
        order: [[1, 'asc']]
    });

$('#opiniondt_' + iTableCounter + ' tbody').unbind().on("click", "td.inner-details-control", function () {
        var tr = $(this).closest('tr');
        var row = oInnerTable.row( tr );
        var rowData = oInnerTable.row( tr ).data();  
        iTableCounter = iTableCounter + 1;

        if (row.child.isShown()) {
            row.child.hide();
            tr.removeClass('shown');
        }
        else {
            //createInnerTable(tr, row, rowData);
        }
   });

Я инициализировал внутреннюю таблицу с oInnerTable, но она выдает ошибку на oInnerTable

TypeError: oInnerTable.row не является функцией

Может кто-нибудь сказать мне, как я могу получить данные строки из таблицы вложенных данных?

1 Ответ

0 голосов
/ 25 апреля 2018

Вам нужно использовать ('#opiniondt_' + iTableCounter).DataTable(...) при инициализации таблицы - обратите внимание на разницу в случае. Если вы используете dataTable(...), вы возвращаете объект jQuery обратно в oInnerTable, а не объект API DataTables, который необходим для выполнения команды row().

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