Тема: [Framework datatable] Змінити значення в таблиці

Є таблиця з багатьма checkbox`сами, потрібно їх всі активувати коли викликається функція CheckAllPlatsGV

для цього я використовую cell().data() - https://datatables.net/reference/api/cell().data()

Роблю все як написано в прикладі cell.data( дані ).draw();

Але зміна значення не відбувається, також не виникає помилок

p_PlatsGV = $('#PlatsGV');

function CheckAllPlatsGV()
{
    var currentDataTable = p_PlatsGV.DataTable();
    var rowCount = currentDataTable.rows().count();

    for(var i = 0; i < rowCount; i++)
    {
        currentDataTable.cell({row:i, column:0}).
            data('<input type="checkbox" class="platCheckboxClass" name="platCheckbox" checked/>').draw();
    }
}

перевіряв чи те що потрібно змінюю так:

console.log( currentDataTable.cell({row:i, column:0}).data() );

Виводяться старі дані

Що тут не правильно ? Чому дані не змінюються ?

2

Re: [Framework datatable] Змінити значення в таблиці

а ви впевнені, що оте ваше cell.data(дані).draw() взагалі викликається?

3

Re: [Framework datatable] Змінити значення в таблиці

Так впевнений. Після проходження першого кроку циклу я перевірив що виведе

currentDataTable.cell({row:0, column:0}).data()

Виводиться старий рядок
https://i.ibb.co/Hz8jLvT/d77.jpg

4

Re: [Framework datatable] Змінити значення в таблиці

можете наробити маленький шмат коду десь на jsfiddle, чи codepen, аби репродюснути то?

5

Re: [Framework datatable] Змінити значення в таблиці

FakiNyan написав:

можете наробити маленький шмат коду десь на jsfiddle, чи codepen, аби репродюснути то?

https://drive.google.com/file/d/147bjlx … sp=sharing

6

Re: [Framework datatable] Змінити значення в таблиці

Betterthanyou написав:
FakiNyan написав:

можете наробити маленький шмат коду десь на jsfiddle, чи codepen, аби репродюснути то?

https://drive.google.com/file/d/147bjlx … sp=sharing

Ви серйозно ?

7 Востаннє редагувалося leofun01 (18.06.2020 11:00:29)

Re: [Framework datatable] Змінити значення в таблиці

Ви використовуєте cell().data(), який повертає текст.
Використовуйте cell().node(), який повертає елемент DOM.

function CheckAllPlatsGV() {
    var currentDataTable = p_PlatsGV.DataTable();
    var rowCount = currentDataTable.rows().count();
    for(var i = 0; i < rowCount; i++) {
        var inputs = currentDataTable.cell({ row: i, column: 0 }).node().getElementsByTagName('input');
        if(inputs.length >= 1 && inputs[0].type === 'checkbox')
            inputs[0].checked = true;
    }
}
Подякували: Betterthanyou, fed_lviv2

8

Re: [Framework datatable] Змінити значення в таблиці

leofun01 написав:

Ви використовуєте cell().data(), який повертає текст.
Використовуйте cell().node(), який повертає елемент DOM.

function CheckAllPlatsGV() {
    var currentDataTable = p_PlatsGV.DataTable();
    var rowCount = currentDataTable.rows().count();
    for(var i = 0; i < rowCount; i++) {
        var inputs = currentDataTable.cell({ row: i, column: 0 }).node().getElementsByTagName('input');
        if(inputs.length >= 1 && inputs[0].type === 'checkbox')
            inputs[0].checked = true;
    }
}

Дякую, працює

FakiNyan написав:

Ви серйозно ?

В jsfiddle і codepen потрібно підключити бібліотеку datatable я не знаю як це робити. Але вже питання вирішено