如何将SmartGWT DataSource与异构数据一起使用

时间:2010-07-14 12:20:09

标签: java data-binding gwt smartgwt

我想使用SmartGWT的TreeGrid对象来显示分层数据。数据是异构的,并非所有元素都具有相同的类型且具有相同的字段。例如,我有以下数据:

Home
 |-Room 1
 |-Room 2
    |-Table
    |-Chair

所有对象都有唯一的ID。家里没有田地。客房只有一个名字。表有一个名称和一个int字段“seatNumberOfPeople”,主席没有。主席有一个字段“颜色”取自表中没有的可能值列表。

当选择TreeGrid中的对象时,我想显示一个DetailViewer,它允许用户编辑该对象的字段。显然,DetailViewer将为每种类型的节点提供不同的字段和验证。

如何设计DataSource以满足这些要求? 从异构数据创建这样的动态DetailViewer的最佳实践是什么?

不幸的是,网上的所有示例都显示了同质的数据(树中所有对象的相同字段)。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我将创建一个具有两个附加字段的数据源,外部ID和外部类型。我们假设你使用主键作为外部ID,数据源名称作为类型。

选择树节点后,您可以将ID和类型传递给详细信息查看器。它调用getDataSource(type)和fetch({criteria id = ID})然后呈现你的细节。 (当然那是假的代码)