【问题标题】:List / Repeater component for VaadinVaadin 的列表/中继器组件
【发布时间】: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 可以渲染组件和网格而不是开箱即用,这很奇怪。我想您还想显示很多其他列,而不仅仅是组件列。但如果您不需要任何表格功能(如排序),则可以使用简单的垂直布局。
  • 你也可以在一定程度上使用FieldGroup binding 来达到类似的效果,但是如果没有看到一些代码,很难想象你到底想要做什么。你有机会分享sscce吗?
  • 用户滚动时的延迟加载机制(如表格)会很棒

标签: vaadin vaadin-grid


【解决方案1】:

您可以将 Grid 与 GeneratedPropertyContainer 一起使用。

然后,您可以在自定义列上使用HtmlRenderer

我希望它有所帮助。 :-)

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多