2016-08-02 9 views
4

我有一個動態表,這意味着數據可以在啓動後添加。然而,問題在於,當單擊單元格的角落時,可以將新行添加到表格中。我將如何防止用戶擴展表格,同時確保我仍然可以添加新行,例如,如果有人會與按鈕進行交互。handontable/javascript - 通過拖動禁用添加的新行

我嘗試使用

afterCreateRow: function(index, amount){ data.splice(index, amount) },

但阻止我將使用alter功能新行。 如果這個問題比較模糊:請參閱下面的鏈接,瞭解帶有可移植性的默認jsfiddle。點擊一個單元格的角落並向下拖動,您會看到。

http://jsfiddle.net/warpech/hU6Kz/

TL; DR:禁止行創建拖動細胞時,使用(在代碼中)預先handsontable.alter('insert_row');

由於允許行創建。

回答

1

編輯:看看這個fiddle

所以我加入這個

fillHandle: { 
    autoInsertRow: false 
} 

和刪除minSpareRows: 1

這會爲您提供拖動功能而無需自動創建行。

測試:

如果右鍵單擊並手動插入行(Insert row below),然後單擊並使用填充柄拖動某個值到新行,應該粘貼在沒有價值在下面創建一個新的行。

注意:如果水平需要相同的功能(也就是,能夠水平拖動值,而不會自動創建新)刪除minSparecols: 1

希望這是你在找什麼!


fillHandle: false選項添加到當前選項。

這消除了拖動和創建新行的功能,但仍然可以通過上下文菜單(contextMenu: true)和最小備用行選項(minSpareRows: 1)添加新行。

+0

嘿!感謝您的答覆。您的解決方案確實通過拖動解決了新行的創建問題,但它也消除了通過拖動現有行來輕鬆複製數據的功能。是否可以拖拽現有的行,但在拖拽時取消新行的創建? – Dubb

+0

我認爲你仍然可以拖動並選擇多行而不創建新行。你能解釋一下嗎? – adriennetacke

+0

基本上,如果一個單元格有一個值,並拖動該單元格,就像我在創建一個新行時將其拖動一樣,它下面的單元格將獲得相同的值(如在Excel中)。但是,現在整個拖動功能都沒有了,我無法再使用該功能。拖動我的意思是當你在一個角落懸停時,使用小十字圖標。 @adriennetacke – Dubb

3

您可以添加以下代碼,以防止行創作,當你拖動單元格:

fillHandle: { 
    autoInsertRow: false, 
}, 
+0

你好,對於遲到的回覆感到抱歉。不幸的是你的回答並沒有解決它。我沒有看到有關問題的變化。雖然謝謝! – Dubb

+0

它似乎在工作,但事實並非如此。 –