我正在使用 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/