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

标签 java data-binding gwt smartgwt

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

相关文章:

java - Boundless 和 Osgeo 版本之间有什么区别?

java - 如何将文本应用到文本区域

android - 数据绑定(bind)必须包含布局文件

html - 在这种情况下,checkbox value = '1' 不起作用的是什么?

gwt - 为什么GWT中没有isFocused()?

java - 如何在 Web 服务中处理并发数据修改困惑和合并(乐观/悲观锁定)?

java - 设置 Java DNS 缓存 TTL

c# - 将数据绑定(bind)到 DataGridView 的最佳方式是什么?

javascript - 将客户端数据发送到另一台计算机

java - Tomcat 显示空白页 - GWT devmode 工作正常