簡體   English   中英

可操作:動態添加下拉值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM