我在我的项目中使用 CustomLayout 来分离 UI 对象及其样式。
我的桌子有些问题。
我定义了一个 div,我希望表格的高度设置为 div 的高度。
哪个是最好的方法?
我想:
table.setsizeFull() ;
table.setPageLength(0);
在代码中,但结果不是我想要的。我希望表格在 div 的尺寸中全尺寸,内部有或没有元素。
有什么建议吗?
我正在解决一个类似的问题:我希望一个表随着我添加行而增长。我不关心它的确切高度,只要它显示所有数据行,并随着我添加行而增长。我还希望桌子总是在底部显示一些额外的空间。
这里的核心思想是我做了三件事:
setHeight()
桌子。setPageLength()
按行定义表格高度——表格应该有多少行。requestRepaint()
了我调整大小的元素。如果我调整了列元素的大小,我会在列元素上调用它。如果我调整了桌子的大小,我会在桌子上调用它。这是一个通用代码示例,展示了我如何解决这个问题。我的代码不完整,但它可能会帮助您入门。
public class MyClass extends Table {
public MyClass(...)
{
this.setWidth("100%"); // fill parent <td>'s width, allows draggable sizing.
// note: do NOT setHeight().
setupColumns(); // details not shown here
setupBehavior(); // details not shown (listeners, etc)
addDataToTable(); // details not shown
adjustHeight();
}
// I also have a function to add rows to the table when
// a button is clicked. That function calls adjustHeight() (shown below).
public void adjustHeight()
{
this.setPageLength(this.getItemIds().size() + 1);
this.requestRepaint();
}
}
[编辑/跟进] 我发现如果您使用setColumnExpandRatio()
(动态列宽),使用此方法往往会导致在表格上呈现不必要的滚动条。setColumnWidth()
因此,请注意,如果您使用我上面展示的技巧,您应该使用固定宽度的列 ( )。