2014-09-19 74 views
1

使用HandsOnTable時,我遇到了一些奇怪的行爲,其中包含許多行的下拉列表。HandsOnTable Dropdown with rows of rows

並非所有行都在第一次單擊下拉列表時出現。第二次點擊時,它可以工作。它在Chrome,IE,Safari和Firefox中對我來說也是一樣。

您可以在JSFiddle中看到整個代碼。

http://jsfiddle.net/nt001ymn/15/

$(document).ready(function() { 

    function getCarData() { 
    return [ 
     ["Nissan", 2009, "black", "black"], 
     ["Nissan", 2006, "blue", "blue"], 
     ["Chrysler", 2004, "yellow", "black"], 
     ["Volvo", 2012, "white", "gray"] 
    ]; 
    } 

    $("#example1").handsontable({ 
    data: getCarData(), 
    startRows: 7, 
    startCols: 4, 
    colHeaders: ["Car", "Year", "Chassis color", "TEST"], 
    columns: [ 
     {}, 
     {type: 'numeric'}, 
     { 
     type: 'dropdown', 
     source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"] 
     }, 
     { 
     type: 'dropdown', 
     source: ["Lots of data!", ... ... "LAST LINE" 
       ] 
     } 
    ] 
    }); 


}); 

編輯:在此期間我使用Javascript功能來編程兩次單擊下拉。不是一個真正的解決方案,但它使用戶體驗無縫。

+0

您需要點擊向下箭頭按鈕,它會工作的一次點擊,但不是整個小區。因爲每當你點擊單元格時,它的選擇首先發生,一旦單元格被選中,下拉打開就會發生。因此,當你再次點擊它時,下拉列表會隨着單元格被選中而打開。 – Mazzu 2014-09-23 05:46:59

+0

我點擊箭頭按鈕。問題是隻有一半的行出現在第一次。關閉並重新打開下拉菜單後,它開始正常工作。 – Dave 2014-09-23 13:38:08

回答

1

我建議使用自動完成類型

var lotOfData = JSON.parse($('<div/>').html($('#textAreaData').val()).text()); 

... 

    type: 'autocomplete', 
    source: lotOfData 
} 
... 

< textarea id="textAreaData" >...<textarea> 
+0

我很欣賞這個建議。我會問用戶是否想要使用自動完成功能。 – Dave 2014-09-25 16:48:38