【发布时间】:2015-03-30 09:19:51
【问题描述】:
我正在使用以下代码向第一行的所有列添加下拉菜单。
var hot = new Handsontable(container,
{
data: results,
colWidths: [200, 200, 200, 200, 200, 200, 200, 200, 200],
colHeaders: false,
contextMenu: true,
cells : function (row, col, prop) {
if (row === 0) {
this.type = 'dropdown';
var val = this.instance.getValue();
if(typeof val != 'undefined') {
this.source = [val, 'Code', 'Type', 'Color'];
}
}
}
});
在我的单元格函数中,我试图将当前单元格值添加到下拉列表中(默认值是代码、类型和颜色)。但是如果用户决定在单元格中输入“重量”,那么我希望下拉列表包含(“重量”、“代码”、“类型”和“颜色”)。
上面的函数确实这样做了,但不正确......每次调用函数时,添加的值都会被下一个替换。
然后我尝试创建一个列表,将值 val 添加到该列表中,并将 source 设置到该列表中。
但我不禁觉得有更好的方法来做到这一点。
任何指针将不胜感激!
【问题讨论】:
-
我已经广泛处理了向下拉列表动态添加值的问题。您能否更好地解释该功能无法正常工作的含义?每次您使用每个单元格上的当前值加上其他值对任何单元格进行更改时,它所做的是替换源(每个单元格行===0)。你到底想发生什么?
-
这是一个行为示例。我们从下拉列表中的以下值开始(“代码”、“类型”和“颜色”)。然后用户决定将“代码”的单元格值更改为“重量”,此时下拉列表显示(“重量”、“代码”、“类型”和“颜色”。现在如果用户决定更改“ “身高”的重量”,然后下拉菜单将显示(“身高”,“代码”,“类型”和“颜色”)。但我希望它阅读(“身高”,“重量”,“代码” ,“类型”和“颜色”)。简而言之,我希望在第一行中输入的所有值都在下拉列表中。