我们正在尝试使用 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;
}
});
最佳答案
来自wiki :
handsontable('setDataAtCell', row, col, value)
Set new value to a cell. To change many cells at once, pass an array of changes in format
[[row, col, value], ...]
as the only parameter. Col is the index of visible column (note that if columns were reordered, the current order will be used)
您一定像我一样下载了一个损坏的版本,其中没有 setDataAtRowProp 方法,而 setDataAtCell 接受该方法的参数。
关于jquery - HandsonTable setDataAtCell 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200791/