после обновления таблицы jexcel я не получаю новые значения - PullRequest
0 голосов
/ 22 апреля 2020

Я не могу получить новые данные jexcel. Когда я нажимаю сохранить данные столбца Test не работает. Я должен получить сумму [["Honda", "2", "2", ""]]
Вот мой код

    var datagrid = jexcel(document.getElementById('my-spreadsheet'), {
    columns: [
        {title: 'Model', width: 300},
        {title: 'Price', type: 'numeric', width: 80},
        {title: 'Tax', type: 'numeric', width: 100},
        {title: 'Test', type: 'numeric', width: 100}
    ],
    data: [
        ['Honda']
    ],
    updateTable: function (instance, cell, col, row, val, label, cellName) {
        if (col == 1) {
            Price = val;
        }
        if (col == 2) {
            Tax = val;
        }
        if (col == 3) {
            totals = Number(Price) + Number(Tax);
            $(cell).text(totals);
        }
    }
});
function save() {
    var data = datagrid.getJson();
    console.log(data, 'data');
}

Я знаю, что есть формула типа = B1 + C1 ... Но я должен ввести вручную для всех строк в сетке.

На самом деле это работало, как и ожидалось в версии jexcel 1.5

1 Ответ

1 голос
/ 22 апреля 2020

Вы меняете внутренний HTML из ячеек, не изменяя объект источника данных. Вы можете исправить это, используя следующий код:

   var datagrid = jexcel(document.getElementById('my-spreadsheet'), {
    columns: [
        {title: 'Model', width: 300},
        {title: 'Price', type: 'numeric', width: 80},
        {title: 'Tax', type: 'numeric', width: 100},
        {title: 'Test', type: 'numeric', width: 100}
    ],
    data: [
        ['Honda']
    ],
    updateTable: function (instance, cell, col, row, val, label, cellName) {
        if (col == 1) {
            Price = val;
        }
        if (col == 2) {
            Tax = val;
        }
        if (col == 3) {
            totals = Number(Price) + Number(Tax);
            // Update labels
            $(cell).text(totals);
            // Update data source
            instance.jexcel.options.data[y][x] = totals;
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...