【发布时间】:2017-01-09 15:52:13
【问题描述】:
在我之前的项目中,我使用 BeanItemContainer 和带有 GeneratedColumns 的 Table 来简单地显示一个显示搜索结果的自定义组件,例如 google。标题、日期、内容以垂直方式显示。 就像它(桌子)一样可怕。
现在我想将 Grid 组件用于一个新项目,具有相同的目标。 该列将被生成并包含一个自定义组件。
这适用于 Grid 吗?有没有更好的东西,比如可用的列表或中继器组件?任何带有自定义组件的单列示例?
似乎 Vaadin 对简单数据或 Button 渲染器以外的任何东西都不屑一顾。
更新
使用Grid 7.5+ 似乎无法直接添加组件
另外,网格单元格喜欢只有fixed hight
ComponentRederer Add-on 支持单元格组件,但修复高度仍然是个问题。
示例代码:
public class Result {
String title;
Date date;
URL url;
String description;
List<String> tags;
public Result (){}
}
BeanItemContainer<Result> resultContainer = fetchResults(searchTerm);
我也使用了一个惰性容器,beanitem 用于简单。
然后我有一个 RecordResultComponent,它在以下布局中构造单个记录结果的布局:
Title(link with Url)
Date
Description
tag1 tag2 tag3 ...
【问题讨论】:
-
为什么要使用表格/网格而不是简单地遍历您的项目列表,为每个项目创建自定义组件的实例并将它们添加到vertical layout(或者可能是grid layout)中?
-
我有大量数据,想利用容器支持的组件。
-
table 可以渲染组件和网格而不是开箱即用,这很奇怪。我想您还想显示很多其他列,而不仅仅是组件列。但如果您不需要任何表格功能(如排序),则可以使用简单的垂直布局。
-
你也可以在一定程度上使用
FieldGroupbinding 来达到类似的效果,但是如果没有看到一些代码,很难想象你到底想要做什么。你有机会分享sscce吗? -
用户滚动时的延迟加载机制(如表格)会很棒
标签: vaadin vaadin-grid