sap.ui.table.Table如何优化列宽

问题描述 投票:4回答:6

我无处可寻。在sap.ui.table.Table控件中是否可以告诉它调整所有列宽以使其内容完全可见?我没有在表或列实例上看到任何属性/方法。

它不受支持吗?

非常感谢。

sapui5
6个回答
4
投票

你可以使用autoResizeColumn(colIndex)方法


3
投票

选项1:设置固定的列大小

var oTable = new sap.ui.table.Table({
    width : "100%",
    selectionMode : sap.ui.table.SelectionMode.None,
    enableColumnFreeze : true,
});

oTable.addColumn(new sap.ui.table.Column({
    template : new sap.ui.commons.TextView({
        text : "{Title}",
        wrapping : true,
        textAlign : sap.ui.core.TextAlign.Begin,
    }),
    enableColumnFreeze : true,
    width : '350px', // also possible in % -> e.g. in ur case '100%'

}));

选项2:可调整大小,但显示完整列宽,我会尝试使用这些属性

  • width:sap.ui.core.CSSSize
  • flexible:布尔值(默认值:true)
  • resizable:boolean(默认值:true)

像这样

oTable.addColumn(new sap.ui.table.Column({
    template : new sap.ui.commons.TextView({
        text : "{Title}",
        wrapping : true,
        textAlign : sap.ui.core.TextAlign.Begin,
    }),
    width : '100%',
    resizable : false,
    flexible : false,
}));

我认为这是一个挑战,我也通过固定尺寸制作它。最终你可以根据屏幕尺寸定义固定尺寸..希望能帮到你。


3
投票

这对我有用:

我的专栏是:

flexible: true,
resizable: true,
autoResizable: true,
width : 'auto'

$($找到( 'sapUiTableColRsz。')。)触发( “点击”)。


2
投票

我尝试了几种方法,但没有一个真的在1.52.23上工作,所以我分析了自动调整大小的方式,双击列分隔符。并找到了隐藏的宝藏:sap.ui.table.TablePointerExtension

这段代码对我有用:

var oTpc = new sap.ui.table.TablePointerExtension(oTable);
var aColumns = oTable.getColumns();
for (var i = 0; i < aColumns.length; i++) {
  oTpc.doAutoResizeColumn(i);
}

-1
投票

面对同样的问题,我在sap.m.Table控件中找到了解决方案。使用“固定布局”选项(将值设置为false,请参阅附带的文档),可以强制列/单元格根据其内容调整大小(与ALV网格控件中的效果相同)。 API参考中很好地描述了该功能:sap.m.Table / setFixedLayout


-1
投票
var oTable = new sap.m.Table({
    fixedLayout: false
});

定义用于布置表格单元格,行和列的算法。默认情况下,使用固定布局算法呈现表。这意味着水平布局仅取决于表格的宽度和列的宽度,而不取决于单元格的内容。后续行中的单元格不会影响列宽。这允许浏览器比自动表格布局更快地布置表格,因为一旦分析了第一行,浏览器就可以开始显示表格。

当此属性设置为false时,将使用自动布局算法呈现sap.m.Table。这意味着,表格及其单元格的宽度取决于单元格的内容。列宽由单元格内最宽的不可破坏内容设置。这会使渲染变慢,因为浏览器需要在确定最终布局之前读取表中的所有内容。注意:由于sap.m.Table没有自己的滚动条,因此将fixedLayout设置为false会强制表溢出,这可能会导致视觉问题。当一个表在宽屏幕中或在水平滚动容器(例如sap.m.Dialog)中有几列来处理溢出时,建议使用此属性。在自动布局模式下,sap.m.Column的width属性被考虑为最小宽度。

© www.soinside.com 2019 - 2024. All rights reserved.