2015-04-14 37 views
0

我有一個12000行的表。我的測試場景是: - 1)選擇表中的任何一行 2)單擊任何列標題(排序) 3)數據被排序並且應該保持選擇並且選定的行應該在可見區域。當我覆蓋handontable高度屬性時,選定的行超出可見區域

正確工作用例: - 當_r8handsontable.scss中沒有參數被修改時,它工作得很好,選擇得以維護,選定的行進入可見區域。

有問題的情況: - 正如我想增加行的高度。我創建了一個單獨的css文件並在其中覆蓋了一些簡單的屬性。修改後的屬性在我的覆蓋CSS是: -

.handsontable th, 
.handsontable td { 
border-right: 1px solid #CCC; 
border-bottom: 1px solid #CCC; 
height: 30px; 
empty-cells: show; 
line-height: 30px; 
max-height: 30px; 
padding: 0 4px 0 4px; 
/* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype/
background-color: #FFF; 
vertical-align: top; 
overflow: hidden; 
outline-width: 0; 
white-space: pre-line; 
font: $FontSize_S, "Siemens Sans"; 
/preserve new line character in cell */ 
} 

我改變行的高度爲30px。現在當我打開表格時,行的高度會增加。桌子的外觀和感覺是根據我的需求而定的。但在這種情況下的問題是: - 當我選擇一行並單擊表格標題進行排序的選擇保持不變,但可見行不在可見區域。

例如 - 我有我的表默認情況下按升序排序。如果我選擇第一行,然後單擊列標題進行排序。現在我的表按照降序排列,我所選擇的行移動到底部並保持選擇(我們已經編寫了用於維護選擇的邏輯),但問題是選定的行不在可見區域中。

回答

1

是的,不幸的是,凌亂的重寫CSS會弄亂一些這些功能。我建議使用rowHeights函數。這個可以讓你設置所有行的高度,如果你給它一個int,或者你給它提供一個數組。

查看我的fiddle一個簡單的例子。

相關代碼:

hot1 = new Handsontable(container, { 
    data: data, 
    startRows: 5, 
    rowHeights: 40 
}; 
+0

非常感謝,這個解決方案工作。 –