[英]Handsontable, disable edit but allow values from drop down for cells
[英]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'];
}
}
}
});
在我的單元格功能中,我試圖將當前單元格值添加到下拉列表中(默認值為Code,Type和Color)。 但是,如果用戶決定在單元格中輸入“ Weight”,那么我希望下拉列表包含(“ Weight”,“ Code”,“ Type”和“ Color”)。
上面的函數確實執行了此操作,但是並沒有正確執行...每次調用該函數時,添加的值將被下一個替換。
然后,我嘗試創建一個列表,將該值添加到val
並將source
設置為該列表。
但是我不禁感到有更好的方法可以做到這一點。
任何指針將不勝感激!
從您的評論中可以看出,您似乎希望將值追加到源列表中。 因此,我建議以下幾點:
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
}
}
}
});
這是將當前值附加到源列表中。 這樣,下次輸入值時,它將被附加而不是替換。
<select ng-repeat="myModel">
<option value=1>First Selection</option>
<option value=2>Second Selection</option>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.