2

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

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

所有对象都有唯一的 ID。家没有字段。房间只有一个名字。表有一个名称和一个 int 字段“seatsNumberOfPeople”,而主席没有。椅子有一个字段“颜色”,该字段取自表格中没有的可能值列表。

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

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

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

4

1 回答 1

0

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

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

于 2012-02-14T16:45:49.687 回答