HandsonTable setDataAtCell 不起作用
Posted
技术标签:
【中文标题】HandsonTable setDataAtCell 不起作用【英文标题】:HandonTable setDataAtCell not working 【发布时间】:2012-12-21 11:14:02 【问题描述】:我们正在尝试使用 HandsonTable 构建一个类似于表格的 Excel。 出于某种原因, 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】:来自wiki:
handsontable('setDataAtCell', row, col, value)
为单元格设置新值。要一次更改多个单元格,请将格式为
[[row, col, value], ...]
的更改数组作为唯一参数传递。 col 是可见列的索引(注意,如果列被重新排序,将使用当前顺序)
您一定像我一样下载了一个损坏的版本,其中没有方法 setDataAtRowProp 并且 setDataAtCell 采用该方法的参数。
【讨论】:
以上是关于HandsonTable setDataAtCell 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用复选框来选中或取消选中所有框到handsontable
Handsontable 中的 Handsontable 下拉高度调整