我想使用 SmartGWT 的 TreeGrid 对象来显示分层数据。数据是异构的,并非所有元素都属于同一类型并且具有相同的字段。例如,我有以下数据:
Home
|-Room 1
|-Room 2
|-Table
|-Chair
所有对象都有唯一的 ID。主页没有字段。房间只有一个名字。表有一个名称和一个整数字段“seatsNumberOfPeople”,主席没有。 Chair 有一个字段“Color”,取自表中没有的可能值列表。
当 TreeGrid 中的一个对象被选中时,我想显示一个 DetailViewer,它允许用户编辑该对象的字段。显然,DetailViewer 将针对每种类型的节点具有不同的字段和验证。
应该如何设计 DataSource 来满足这些要求? 从异构数据创建这种动态 DetailViewer 的最佳做法是什么?
不幸的是,网络上的所有示例都显示同类数据(树中所有对象的相同字段)。
最佳答案
在这种情况下,我将创建一个具有两个附加字段的数据源,即外部 ID 和外部类型。假设您使用主键作为外部 ID,使用数据源名称作为类型。
当您选择一个树节点时,您会将 ID 和类型传递给您的详细信息查看器。它调用 getDataSource(type) 和 fetch({criteria id = ID}) 然后呈现您的详细信息。 (当然那是伪代码)
关于java - 如何将 SmartGWT DataSource 与异构数据一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245969/