vaadin 显示table组件的全部项目

在一个容器(layout)里有一个table组件,想全部显示这个组件而不出现滚动条,由于table组件的行是动态添加的,所以不能使用固定宽高的方式。
查看了有关文档,发现了VerticalLayout和HorizontalLayout可以自动适合它内部组件的大小,只要它们的高度和宽度不指定就行了。
然后按这个方法弄过之后,table组件显示不出来了,再找文档,发现一条警告:

如果布局中包含的组件使用了百分比尺寸, 那么容器布局本身必须指定尺寸!
如果布局尺寸未指定, 并且其中包含的组件使用相对尺寸, 比如, 100% 相对大小, 那么组件会占据布局给出的所有空间, 而布局却想要缩小自己的尺寸与它包含的组件相适应, 于是发生矛盾. 这里所说的限制对于高度和宽度两个方向都是存在的. 使用调试窗口可以查看这种无效的情况; 

原来table的尺寸必须设定。但又不能设置成固定大小,怎么办呢?继续看文档吧。。
找到这样一条:
页长与滚动条

Table 的默认风格是一个带滚动条的表格. 滚动条在表格的右侧, 只在 Table 内项目的数量超过页长时才显示, 页长也就是可见项目的数量. 你可以使用 setPageLength() 方法设置页长. 

将页长设置为 0 , 会显示 Table 内所有项目, 无论项目数量有多大. 注意, 这样的设置也会导致缓冲功能失效, 因为 Tabel 内所有数据都必须一次性装载到浏览器端. 使用这样的 Table 来生成报表不适用于大量数据的情况, 因为它会在使用 Ajax 描绘 Table 时出现大量的数据传输. 对于大量数据的报表, 直接生成 HTML 内容会更高效一些.



table_1.setPageLength(0);
table_1.setSizeUndefined();
mainLayout.addComponent(table_1);
mainLayout.setSizeUndefined();


按此方法设置之后果然OK了。总算是把问题解决了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值