【问题标题】:Adding the data to the specific columns and rows using Vaadin 7.8.4 (Java)使用 Vaadin 7.8.4 (Java) 将数据添加到特定的列和行
【发布时间】:2017-12-29 05:27:21
【问题描述】:

如何将数据包含在特定行和列的网格中?当我想将数据添加到蓝色单元格时?谢谢!

【问题讨论】:

  • 是jTable还是Vaddin组件?
  • @BaneeIshaqueK 它是 Grid -> Vaadin 组件。
  • 在 vaadin 你有一个容器作为网格的数据源。因此,将数据添加到数据源中的正确位置,并根据需要触发数据更改或 itemchanged 事件以获取新数据
  • 什么数据?你想如何从后端添加它?从 GUI 双击单元格?请描述你的场景。 P.S.这和Adding columns to grid using Vaadin 8.0.7有关系吗?
  • @Morfic 我想以编程方式(使用代码)在任何特定单元格显示一些数据。通过单击单元格,但我也想将数据从数据库加载到单元格中。

标签: java grid vaadin cell


【解决方案1】:

在 Vaadin -> Grid 中,所有行都由唯一 ID 标识,这取决于您用于存储该数据的容器类型。

让我们以IndexedContainer 为例。在此容器中,您可以在执行addItem([Object itemId]) 时指定行 ID。这个 id 是你将用来在特定单元格中写入的内容。要写入特定列,您可以获得itemProperty,这是存储该单元格值的位置。使用 IndexedContainer 示例,代码将如下所示:

IndexedContainer container = new IndexedContainer();
//Add container properties like "name"
//container.addContainerProperty("name", String.class,"");
//From IndexedContainer docs: addContainerProperty(Object propertyId, Class type, Object defaultValue)
container.addItem(1);
Item item = container.getItem(1);
item.getItemProperty("name").setValue(someValue);

它将允许您在单元格上书写。 如果改为 Indexed,则您使用的是 BeanItemContainer,例如,插入的对象将用作数据和 ID。

编辑:要将任何容器设置为网格的数据源,请写grid.setContainerDataSource(containerName);

【讨论】:

  • 如何将容器添加到我的网格中?
  • IndexedContainer 容器 = new IndexedContainer(); grid.addColumn("NewColumn",String.class); grid.removeAllColumns(); grid.setContainerDataSource(容器);容器.addItem(1);项目项目 = container.getItem(1); item.getItemProperty("name").setValue("Hello");我收到空指针异常的错误
  • 在代码中有一条注释说“添加容器属性,如名称”。写完container.addContainerProperty("name", String.class, "");,请参阅 IndexedContainer 文档以查看更多详细信息。
  • @Ady96 如果解决了问题,请接受答案。
猜你喜欢
  • 2018-01-07
  • 2018-01-07
  • 2020-12-09
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多