2016-09-14 62 views
2

我的目标:Va​​adin表应占据父元素(Horizo​​ntalLayout)的100%高度。Vaadin表与大表的动态页面长度

我知道我可以将页面长度设置为0,但由于我的表格非常长,我想保持延迟加载行为。有没有办法让Vaadin动态地确定页面长度?

更新:我发现一个黑客与

.v-table-body { 
    height: calc(100% - #{($v-table-row-height + 3 * $v-table-border-width)}) !important; 
    } 
在SCSS

,其正确设置的高度。但是,除了在这里使用!important这种令人不安的事实之外,懒惰还显示了15行的行数,即1-15...

+0

'table.setHeight(“100%”)''有什么问题? –

+0

问题是,除非页面长度= 0,否则不会将高度设置为100% –

+0

延迟加载机制不受'setPageLength()'的影响。这只是一个视觉设置。手上的'setCacheRate()'会影响你的缓存。 –

回答

0

我发现了什么是:你可以只写

table.setSizeFull(); 
horizontalLayout.addComponent(table); 

表是现在更大,显示根据您的屏幕大小更多的对象。但仍然可以使用缓存。您也可以在Chrome的开发人员工具的网络标签中看到,并非所有元素都已发送,但只有其中一小部分(可见行+缓存)。通过调试,我发现表的pageLength成员根据可见元素的数量而改变。

你不需要设置页面的长度,你不需要你的CSS破解。