UI5树表为什么重复节点?

san*_*oxj 5 treeview odata sapui5

我正在尝试按照sap.ui.table.TreeTable 中的 OData 示例将 OData 绑定到树表

我已经尝试了基本绑定与treeAnnotationPropertiesxml 中的设置和注释绑定(我已经检查了$metadata查询,它有sap:hierarchy-等)。

但是,两次我都得到重复的节点,例如:

Id    | Title     | Hierarchy Level | ParentID 
----------------------------------------------------
1     | izparent  | 0               | 0
|--1  | izparent  | 0               | 0
|  |-- ...
|--2  | izchild   | 1               | 1
2     | izchild   | 1               | 1
Run Code Online (Sandbox Code Playgroud)

我得到一个 ID 为 1 的节点,它是可扩展的,而节点 2 是不可扩展的。但是如果我展开节点 1,我再次得到可展开的节点 1 和节点 2,我可以重复展开节点 1 以获得相同的结果。

我有一种感觉,我有一个与此处类似的问题,但也没有为此提供答案:How to define tree table annotation (XML view)

我正在使用 OData 2.0 版,对于我来说,et_entity我只提供了SELECT * FROM一个表,该表具有我认为根据示例需要的结构。

表内容:

Id | Title    | HierarchyLevel | ParentID | Drillstate
1    izparent   0                0          expanded
2    izchild    1                1          leaf
Run Code Online (Sandbox Code Playgroud)

这里可能是什么问题?

san*_*oxj 4

我发现添加operationMode: 'Client'参数rows可以解决问题。

看来扩展会触发另一个服务器调用($batch在调试网络选项卡下会出现额外的调用),因此必须在方法中包含额外的逻辑GetEntitySet来处理较低层次结构级别上的扩展,因此它不再提供完整的层次结构(例如if hierarchy level = ..., then select only hierarchy level < ...)。由于我正在处理的数据量允许operationMode: client,我没有进一步采用额外的逻辑方法。