如何根据树选择过滤Oracle ADF表内容?
绑定:
因此表总是渲染,好像在树中选择了第一个项目,但当我点击其他一些VariablePoint时,表格不会改变:
更新
根据答案,我能够配置以下内容,并解决了问题:
我为每个树级规则制作了一个迭代器,并将它们用作每个树/树级规则的目标数据源。
答案 0 :(得分:0)
ADF树可能看起来有些误导,但它们实际上并不反映您在应用程序模块中创建的数据控件(迭代器)。树在视图链接访问器上工作。这就是为什么当您选择树节点时,迭代器不会得到任何更改。
如果要在模型项目中查看访问者,请打开层次结构中使用的任意两个相邻视图对象之间的视图链接。在Relationship - Accessors - Destination中,您将看到Accessor Name参数。它的值将是较低树级别的名称。您将在树级规则部分的pageDef树绑定中看到相同的名称,以获得适当的级别。
因此,即使您从应用程序模块数据控件中删除了所有迭代器而不是OrgView1Iterator,您的树仍然可以正常工作(此时不会谈到右表)。
现在让你的案子工作。
OrgView1和VariablePointViewOrgZoneVariable处于根级别。 VariablePointViewOrgZoneVariableVariablePoint是VariablePointViewOrgZoneVariable的子节点。 应该从数据控制中删除OrgView1的所有当前子项。
在你的可执行文件中应该有3个迭代器:OrgView1Iterator,VariableDataView1Iterator和VariablePointViewOrgZoneVariable1Iterator。
结果应为$ {bindings.VariablePointViewOrgZoneVariable1Iterator}。
重新启动页面后,过滤应该有效。
我做了一个展示你案子的小例子。 按照说明操作,您可以在计算机上运行它或只阅读自述文件。它还将选择应用于您可能不需要的最后一个树级别。
https://github.com/ILyaCyclone/adf-tree-to-table-filterandselect