java - GXT 3 使用 ListStore 显示集合的每个值一行

标签 java gwt gxt

我正在使用 Liststore 将 DTO 对象中的数据显示到网格中。 大多数对象属性都是字符串,可以很容易地显示。但其中一个参数是一组字符串 总而言之,我的对象如下所示:

public class MyObject{ 
    private String param1; // "val1"
    private String param2; // "val2"
    private Set<String> param3; // param3 contains "value3-1", "value3-2" and "value3-3"
    ...
}

我想在网格中为 param3 中的每个元素显示一行。 类似这样的事情:

参数1 |参数2 |参数3
值1 |值2 |值3-1
值1 |值2 |值3-2
值1 |值2 |值3-3

您知道通过操作 ListStore 来实现此目的的简单方法吗?

谢谢

最佳答案

ListStore 中的每个项目对应于网格中的一行 - 因此,您需要将数据放入网格中。您应该能够轻松地迭代 MyObject 实例列表并将它们转换为 MyObjectRow 实例 - 它甚至可以包含对“真实”MyObject 实例的引用,以便于编辑/更新。

但是,由于它是一个集合,因此您需要小心 - 集合没有顺序!这意味着您可能无法获得 value3-1、value3-2、value3-3,但它们可以按任意顺序到达。强烈考虑使用 List 而不是顺序对您来说很重要。

使用List,您可以让 MyObjectRow 看起来像这样:

public class MyObjectRow {
    private MyObject wrapped;
    private int index;

    //...
    public String getParam1() {
        return wrapped.getParam1();
    }
    public String getParam2() {
        return wrapped.getParam2();
    }
    public String getParam3() {
        return wrapped.getParam3().get(index);
    }
}

然后,对于每个 MyObject,创建 N 个 MyObjectRow,其中 N 是 param3 中的项目数。

关于java - GXT 3 使用 ListStore 显示集合的每个值一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097856/

相关文章:

java - 如何在 Jtable 上正确对齐标题​​边框

java - 在 hibernate 中的一个公共(public)位置进行逻辑删除

GWT - 重用回调类

java - GWT/文本框-单击和双击处理程序选项?可能的?

css - 在 GXT 中,更改 ContentPanel 标题颜色后,标题文本的垂直对齐方式会移至顶部。怎么弄到中间?

css - 如何将图标放在 GXT 按钮的中心

java - 删除大型 Java 字符串的部分(它包含 HTML 源代码)

java - 在java中获取实例化类型变量

mysql - GWT:与 MySQL 共享 POJO

java - gxt 将图像与组合框对齐