Handsontable:动态添加下拉值
Handsontable: Adding drop down values dynamically
我正在使用以下代码向第一行的所有列添加下拉菜单。
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'];
}
}
}
});
在我的单元格函数中,我试图将当前单元格值添加到下拉列表中(默认值是代码、类型和颜色)。但是,如果用户决定在单元格中输入 "Weight",那么我希望下拉列表包含("Weight"、"Code"、"Type" 和 "Color" ).
上面的函数确实这样做了,但没有正确...每次调用该函数时,添加的值都会被下一个替换。
然后我尝试创建一个列表,我将向该列表添加值 val
并将 source
设置为该列表。
但我不禁觉得有更好的方法可以做到这一点。
如有指点,将不胜感激!
<select ng-repeat="myModel">
<option value=1>First Selection</option>
<option value=2>Second Selection</option>
</select>
我明白,从您的评论来看,您似乎想要将值附加到您的源列表。因此,我建议如下:
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.push(val); // to add to the beginning do this.source.unshift(val) instead
}
}
}
});
这样做是将当前值附加到源列表。这样,下次您输入一个值时,它会被追加而不是被替换。
我正在使用以下代码向第一行的所有列添加下拉菜单。
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'];
}
}
}
});
在我的单元格函数中,我试图将当前单元格值添加到下拉列表中(默认值是代码、类型和颜色)。但是,如果用户决定在单元格中输入 "Weight",那么我希望下拉列表包含("Weight"、"Code"、"Type" 和 "Color" ).
上面的函数确实这样做了,但没有正确...每次调用该函数时,添加的值都会被下一个替换。
然后我尝试创建一个列表,我将向该列表添加值 val
并将 source
设置为该列表。
但我不禁觉得有更好的方法可以做到这一点。
如有指点,将不胜感激!
<select ng-repeat="myModel">
<option value=1>First Selection</option>
<option value=2>Second Selection</option>
</select>
我明白,从您的评论来看,您似乎想要将值附加到您的源列表。因此,我建议如下:
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.push(val); // to add to the beginning do this.source.unshift(val) instead
}
}
}
});
这样做是将当前值附加到源列表。这样,下次您输入一个值时,它会被追加而不是被替换。