标签: vaadin-grid

Vaadin Grid vs Table

Vaadin 7中的组件GridTable组件有什么区别?

我应该使用哪种,何时使用?

java datagrid vaadin vaadin7 vaadin-grid

19
推荐指数
2
解决办法
2万
查看次数

如何在Vaadin 8中有条件地为网格行着色?

我想根据单元格的值更改Vaadin网格行的颜色.我尝试了如下,但没有奏效.

SCSS

@import "mytheme.scss";
@import "addons.scss";

// This file prefixes all rules with the theme name to avoid causing conflicts with other themes.
// The actual styles should be defined in mytheme.scss

.mytheme {
     @include addons;
     @include mytheme;

     .v-grid-row.error_row {
            // Tried following elements and didn't work.
            // background-color: red !important;
            // color: blue !important; // This changed the color of the font.
            background: green !important;
     }
}
Run Code Online (Sandbox Code Playgroud)

Java代码

grid.setStyleGenerator(t -> {
            if (t.getLogLevel().trim().equals(ERROR) || t.getLogLevel().trim().equals(WARN)) {
                return "error_row";
            } …
Run Code Online (Sandbox Code Playgroud)

java sass vaadin vaadin-grid vaadin8

12
推荐指数
1
解决办法
5433
查看次数

立即在Vaadin 7 Grid中按箭头键选择行

Vaadin 7.5.3中,Grid小部件通过移动单个单元格周围的高亮框来响应用户按下向上(↑)或向下(↓)箭头键.如果用户然后执行第二个操作,按下SpaceBar键,该行将成为选择.

我对此行为感到困惑.我希望箭头键的每个笔划立即选择下一行.

有没有办法改变网格的行为,直接选择下一行而不需要用户的第二个手势?

在此输入图像描述

keyboard-shortcuts vaadin vaadin7 vaadin-grid

9
推荐指数
1
解决办法
1251
查看次数

Vaadin - 行修改后刷新网格

我使用数据库中的数据创建简单网格:

BeanItemContainer<Customer> container = new BeanItemContainer<>(Customer.class, customerRepository.findAll());
Grid grid = new Grid(container);
Run Code Online (Sandbox Code Playgroud)

要编辑按钮的每一行:

Button edit = new Button("Edit", clickEvent -> openWindow((Customer) grid.getSelectedRows().iterator().next()));
Run Code Online (Sandbox Code Playgroud)

这个打开的新窗口带有编辑表单.接受所有更改后,我必须手动刷新整个页面以查看Grid上的修改.我的问题是:

如何在修改任何行条目后仅刷新网格?如何将这些修改保存到数据库(也许beanItemContainer可以做到)?

java vaadin vaadin7 vaadin-grid

8
推荐指数
2
解决办法
2万
查看次数

用于字符串数组的vaadin-grid-filter不起作用

我正在使用带聚合物2.x的vaadin-grid-filter,我遇到了以下问题.我有一个vaadin-grid-column如下,

<vaadin-grid-column width="15em">
        <template class="header">
            <vaadin-grid-filter aria-label="Inventory" path="" value="[[_filterItems]]">
                <vaadin-text-field slot="filter" placeholder="Item" value="{{_filterItems}}" focus-target></vaadin-text-field>   
            </vaadin-grid-filter>
        </template>
    <template>[[item]]</template>
</vaadin-grid-column>
Run Code Online (Sandbox Code Playgroud)

[[item]]是一个字符串数组,当path设置为空字符串时,过滤不起作用.如果我将每个字符串放在一个Json对象中并像在文档中那样访问它,那么它可以正常工作.但我想知道是否有一种方法可以过滤掉它.

先感谢您.

vaadin vaadin-grid polymer-2.x

8
推荐指数
1
解决办法
299
查看次数

如何在Vaadin网格中只编辑一些列?

Vaadin Grid允许定义为可编辑

grid.setEditorEnabled(true);
Run Code Online (Sandbox Code Playgroud)

这使得所有可见列都可以编辑.但是,我不希望用户编辑特定列,但似乎可编辑是全部或全部.

我发现的下一个最佳解决方案是使用禁用的编辑器定义编辑器字段,这几乎可以解决问题,但用户仍然可以选择文本并移动光标(但该字段不再可编辑).

Grid.Column nameColumn = grid.getColumn("fullName");
nameColumn.setHeaderCaption("Full Name");
nameColumn.setEditorField(getNoEditableTextField());

...

private Field<?> getNoEditableTextField() {
    TextField noEditableTextFiled = new TextField();
    noEditableTextFiled.setEnabled(false);
    return noEditableTextFiled;
}
Run Code Online (Sandbox Code Playgroud)

我相信Label不能用,因为它不是Field.

有没有更好的选择来实现这一目标?

编辑:正如aakath所说,有一种方法可以实现这一点,不能编辑列,但这样做时,单元格值会在编辑行时消失,这是不可取的.

java vaadin vaadin7 vaadin-grid

7
推荐指数
2
解决办法
8862
查看次数

Vaadin的List/Repeater组件

在我之前的项目中,我使用了BeanItemContainer和一个带GeneratedColumns的表来显示一个显示搜索结果的自定义组件,比如google.标题,日期,内容以垂直方式.虽然它很糟糕(表),但它确实奏效了.

现在我想将Grid组件用于新项目,目标相同.该列将生成并包含自定义组件.

这可以与Grid一起使用吗?是否有更好的东西,如列表或转发器组件可用?具有自定义组件的单个列的任何示例?

看起来Vaadin对简单数据或Button渲染器以外的任何东西都不屑一顾.

更新

看起来添加组件不适用于Grid 7.5+

此外,网格单元格只能固定高度

ComponentRederer 附加组件支持单元组件,但修复高度仍然是个问题.

示例代码:

 public class Result {
      String title;
      Date date;
      URL url;
      String description;
      List<String> tags;

      public Result (){}

 }

BeanItemContainer<Result> resultContainer = fetchResults(searchTerm);
Run Code Online (Sandbox Code Playgroud)

我也使用Lazy Container,简单地使用beanitem.

然后我有一个RecordResultComponent,它在以下布局中构造单个记录结果的布局:

 Title(link with Url)
 Date
 Description
 tag1 tag2 tag3 ...
Run Code Online (Sandbox Code Playgroud)

vaadin vaadin-grid

7
推荐指数
1
解决办法
303
查看次数

过滤vaadin网格时如何捕获异常

使用vaadin(7.7.3)我按名称过滤网格,这个过滤需要几秒钟才能从Gridgui中删除对象.所以,如果我点击该游戏中时光倒流的一行Grid将从中移除Container,则会引发异常:

Caused by: java.lang.IllegalArgumentException: Given item id (5422bef6-e472-4d3e-af54-316c52d373da) does not exist in the container
at com.vaadin.ui.Grid$AbstractSelectionModel.checkItemIdExists(Grid.java:1371)
at com.vaadin.ui.Grid$SingleSelectionModel.select(Grid.java:1460)
at com.vaadin.ui.Grid$SingleSelectionModel$1.select(Grid.java:1445)
Run Code Online (Sandbox Code Playgroud)

我想这是正常的,因为它从中移除了对象Container,然后它将传播到gui.

我曾想过checkItemIdExists()在我的Grid类中捕获异常覆盖该方法,但它会捕获每种情况的异常,这不是我正在寻找的行为.

我的问题是:如何在这种情况下捕获此异常?

java vaadin7 vaadin-grid

6
推荐指数
1
解决办法
275
查看次数

如何将生成的列添加到Vaadin 8 Grid?

看起来像Vaadin 8中不存在GeneratedPropertyContainer.

我们如何将生成的列添加到Vaadin 8 Grid?如果你能提供一个例子我很感激.

vaadin-grid vaadin8

6
推荐指数
1
解决办法
5214
查看次数

带有行索引的 Vaadin 流网格

如何将行索引列添加到网格中,该列不会按照用户对行进行排序?

该解决方案不得包括对任何聚合物模板的更改,而应在 java 中完成。

vaadin vaadin-grid vaadin-flow vaadin14

6
推荐指数
1
解决办法
575
查看次数