jexcel очистка и обновление новых данных - PullRequest
0 голосов
/ 13 января 2020

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

Вот мой пример кода:

<select class="custom-select form-control" id="tempSel" onchange="templateChange()"></select>
<div id="spreadsheet" style="margin-left:10px; margin-top:10px"></div>

JS:

function displayOutput(data, headers, width) {      

        table = jexcel(document.getElementById('spreadsheet'), {
            data: data,
            colHeaders: headers,
            colWidths: width,
            allowInsertColumn: false,
            csvHeaders: true,
            tableOverflow: true,
            tableHeight: '650px',
        });               
    }

    function templateChange() {

        template = $("#tempSel").val();
        if (template == 0) {            
            $.get("/Db/getData1", { 'table': 0 })
                .done(function (res) {                    
                    data = res.data;
                    console.log(data);
                    displayOutput(data, ['NAME', 'AGE', 'GENDER'], [200, 200, 200]);
                });

        } else if (template == 1) {
            $.get("/Db/getData2", { 'table': 1 })
                .done(function (res) {                    
                    data = res.data;
                    console.log(data);
                    displayOutput(data, ['TYPE', 'SIZE', 'JOB'], [220, 220, 220]);
                });
        }
    }

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Вы можете попробовать что-то подобное:

jSuites.ajax({
    url: '/yoursource/xxx',
    method: 'GET',
    dataType: 'json',
    success: function(data) {
        document.getElementById('spreadsheet').jexcel.setData(data);         
    }
})
0 голосов
/ 13 января 2020

Нашли решение по этой ссылке https://github.com/paulhodel/jexcel/issues/498

просто нужно сначала очистить таблицу перед добавлением новой:

document.getElementById('spreadsheet').innerHTML = '';
...