我无处可寻。在sap.ui.table.Table控件中是否可以告诉它调整所有列宽以使其内容完全可见?我在表或列实例上看不到任何属性/方法。
不支持吗?
非常感谢。
答案 0 :(得分:4)
您可以使用autoResizeColumn(colIndex)
方法
答案 1 :(得分: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:可调整大小,但显示完整列宽,我会尝试使用这些属性
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,
}));
我认为这是一个挑战,我也是通过固定尺寸制作的..最终你可以根据屏幕尺寸定义固定尺寸..希望能帮助你。
答案 2 :(得分:3)
这对我有用:
我的专栏是:
flexible: true,
resizable: true,
autoResizable: true,
width : 'auto'
$($找到(' .sapUiTableColRsz'))触发。("单击&#34);
答案 3 :(得分:1)
我尝试了几种方法,但在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);
}
答案 4 :(得分:0)
对我来说,我需要在接收到数据后对“ autoResizeColumn”进行调用。您可以将其附加到绑定的dataReceived事件
答案 5 :(得分:-1)
在遇到同样的问题时,我在sap.m.Table控件中找到了解决方案。使用“固定布局”选项(将值设置为false,请参阅附带的文档),可以强制列/单元格根据其内容调整大小(与ALV网格控件中的效果相同)。该API功能在API参考中有很好的描述:sap.m.Table / setFixedLayout
答案 6 :(得分:-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属性将被考虑为最小宽度。