我有一个sap.ui.table组件,它包含在sap.ui.layout.VerticalLayout中。问题是,如果表格列重新调整大小(放大),表格将获得一个水平滚动条。到目前为止这么好,但是,我的问题是,如果有任何方法我可以将表水平滚动条放在父容器上(所以在VerticalLayout组件上),这样用户就不需要滚动行了一直向下以访问水平滚动条。
我已经尝试将垂直布局组件宽度设置为“auto”,这将获得所需的行为,但在这种情况下,表格不会扩展到页面的100%(它在chrome tho上工作正常,当IE上出现auto(在我的情况下为IE11)时,不会100%的问题)。所以基本上,我需要将父级的宽度设置为100%,因此表和容器扩展到页面的右边缘,但如果需要水平滚动条,我需要显示在容器上而不是表
I
我真的没有想法,所以任何帮助,提示都会很棒,谢谢!
更新:我添加了jsFiddle复制页面结构和我的问题。 我必须补充一点,问题是仅在IE (我使用IE11)。
答案 0 :(得分:3)
如果有其他人遇到这个问题,这就是我找到的解决方案:
1)在包装容器创建时将宽度设置为100%,这样,表格将在所有浏览器上扩展到100%。
2)在表上附加columnResize函数,如下所示:
columnResize: function(e){
applyScrollOnContainer();
}
3)在applyScrollOnContainer()
上,只需将容器的宽度更改为auto,这样就可以将表scrollBar放在容器上。
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%");
}