2015-04-01 12 views
2

我有一個包裹在sap.ui.layout.VerticalLayout中的sap.ui.table組件。問題是,如果表格列被重新調整大小(放大),表格將獲得一個水平滾動條。到目前爲止這麼好,但是,我的問題是,如果有任何方法,我可以將表水平滾動條放在父容器上(所以在VerticalLayout組件上),這樣用戶就不需要滾動行一路下來獲得訪問水平滾動條。將表格水平滾動到父容器(sapui5)

我已經嘗試將垂直佈局組件的寬度設置爲「自動」,這將得到我想要的行爲,但在這種情況下,表不會擴展到頁面的100%(它在鍍鉻工作正常,當IE上存在auto時(IE11在我的情況下)不會100%的問題)。所以基本上,我需要將父級的寬度設置爲100%,以便將表格和容器展開到頁面的右邊距,但是如果需要水平滾動條,則需要在容器上顯示,而不是在表。

I我真的沒有想法,所以任何幫助,提示,將是偉大的,謝謝!

UPDATE:我加了一個jsFiddle,它複製了頁面的結構和我的問題。 我必須補充說,問題是隻有在IE(我使用IE11)

+1

在垂直容器內部使用面板,然後在其上放置表格。 – 2015-04-03 02:46:17

+0

@SrikanthKshatriy您好,感謝您的提示。我試過這個解決方案,但問題仍然存在。 – user2271933 2015-04-04 09:11:18

回答

2

在情況下,將面臨這樣的問題的其他人,這是我找到了解決辦法:

1)在包裝容器創建組寬度爲100%,這樣一來,該表將擴大到100%在所有瀏覽器上。

2)上表附加一個columnResize函數是這樣的:

columnResize: function(e){ 
    applyScrollOnContainer(); 
} 

3)在applyScrollOnContainer(),只需將容器的寬度改變爲自動,這樣的表滾動條將被放置在容器中。

sap.ui.getCore().getElementById("yourContainerIdHere").setWidth("auto"); 

4)您也可以在document.load上添加支票。如果再次顯示錶格滾動條,則將其附加到容器上。

var scrollDisplay = $("#tableIdhere .sapUiTableHSb").css("display"); 


if(scrollDisplay === "block"){ 
    sap.ui.getCore().getElementById("ORDERS_VIEW_FIRST_TABLE").setWidth("auto"); 
} 
else{ 
    sap.ui.getCore().getElementById("ORDERS_VIEW_FIRST_TABLE").setWidth("100%"); 
}