HandonTable setDataAtCell не работает
Мы пытаемся создать таблицу типа Excel, используя HandsonTable. По некоторым причинам метод setDataAtCell, кажется, не работает. Во время отладки я вижу, что этот метод правильно устанавливает данные, но при отображении таблицы обновленное значение не отображается. Я мог бы сделать что-то действительно дамп. Ваша помощь глубоко оценена. Ниже приведен код:
container.handsontable({
data: getChemicalData(),
minRows: 5,
minCols: 6,
minSpareRows: 2,
minSpareCols: 0,
colHeaders: ["<b>TUBE</b>", "<b>A</b>", "<b>B</b>", "<b>C</b>", "<b>D</b>", "<b>Total in Item, grams</b>"],
colWidths: [200,50,50,50,50,100],
columns: [
{
data: "Effect",
type: {editor: Handsontable.AutocompleteEditor },
source: ["RD", "SB", "WG"],
strict: true
},
{
data: "A"
},
{
data: "B"
},
{
data: "C"
},
{
data: "D"
},
{
data: "TotalInGms",
readOnly: true
}
],
cells: function (row, col, prop)
{
var cellProperties = {};
if ((row === 0 && col === 0) || (row === 1))
{
cellProperties.readOnly = true;
}
return cellProperties;
},
onBeforeChange: function (data) {
if (data[0][1] !== "Effect") {
if (parseInt(data[0][3]) > 0) {
}
else {
return false;
}
}
},
onChange: function (data, source) {
if (source === 'loadData') {
return; //don't show this change in console
}
if (isBypass === true) {
return;
}
var sel = $("#example").handsontable('getSelected');
if (sel != null) {
if (sel[0] === 0) {
var noOfRows = $("#example").handsontable('countRows');
var totalGmsPerItem = 0;
var gmsPerTube = 0;
for (var i = 2; i < noOfRows; i++) {
gmsPerTube = parseInt($("#example").handsontable('getDataAtCell', i, sel[1]));
if (gmsPerTube > 0) {
totalGmsPerItem = parseInt(totalGmsPerItem) + gmsPerTube * parseInt(data[0][3]);
}
}
var noOfCols = $("#example").handsontable('countCols');
isBypass = true;
$("#example").handsontable('setDataAtCell', 3, 2, totalGmsPerItem);
//$("#example").handsontable('setDataAtCell', sel[0],sel[1], 19);
isBypass = false;
}
}
return;
}
});
1 ответ
Из вики:
handsontable('setDataAtCell', row, col, value)
Установите новое значение для ячейки. Чтобы изменить много ячеек одновременно, передайте массив изменений в формате
[[row, col, value], ...]
как единственный параметр. Col - индекс видимого столбца (обратите внимание, что если столбцы были переупорядочены, будет использован текущий порядок)
Вы, должно быть, скачали сломанную версию, как я сделал, где нет метода setDataAtRowProp, и setDataAtCell принимает параметры этого метода.