基于树选择的ADF过滤表

问题描述:

如何基于树选择过滤Oracle ADF表内容?基于树选择的ADF过滤表

绑定:

Bindings

所以表总是呈现为如果第一个项目将在树中选择,但是当我点击一些其他VariablePoint,该表没有改变:

Table which does not change when selection changes

UPDATE

基础上的答案,我能够精读图下,它解决了这个问题:

Configuring Target Data Source

我做了一个迭代器对每个树级别的规则,并用它们作为目标数据源每个树/树级别规则。

ADF树可能看起来有些误导,但它们实际上并不反映您在应用程序模块中创建的数据控件(迭代器)。树木在视图链接访问器上工作。这就是为什么当你选择一个树节点时,迭代器不会得到任何改变。

如果您想在您的模型项目中看到您的访问器,请在层次结构中使用的任意两个相邻视图对象之间打开视图链接。在关系 - 访问器 - 目标中,您将看到访问者名称参数。它的值将是更低树级的名称。同样的名字,你会在你的pageDef树在适当的水平树形层级规则部分结合看。

所以,即使你删除你的应用程序模块的数据控制所有迭代器,但OrgView1Iterator,你的树仍然功能(目前还不谈到右表)。


现在让你的案例工作。

  1. 在您的应用程序模块的数据控制,你只需要层次结构:
    • OrgView1
    • VariablePointViewOrgZoneVariable
      • VariablePointViewOrgZoneVariableVariablePoint

OrgView1和VariablePointViewOrgZoneVariable位于根级别。 VariablePointViewOrgZoneVariableVariablePoint是VariablePointViewOrgZoneVariable的孩子。 OrgView1的所有当前子女都应从数据控制中删除。

  1. 在页面绑定的Executables部分中,单击绿色加号并添加VariablePointViewOrgZoneVariable迭代器(比如说,VariablePointViewOrgZoneVariable1Iterator)。

在你的Executables中应该有3个迭代器:OrgView1Iterator,VariableDataView1Iterator和VariablePointViewOrgZoneVariable1Iterator。

  1. 过滤的关键部分是目标数据源属性。你可以在你的树形结构中找到它。 在绑定部分的页面绑定中,双击OrgView1。在树级规则中选择VariablePointViewOrgZoneVariable树并在底部公开目标数据源。 单击EL Picker,选择VariablePointViewOrgZoneVariable1Iterator并确定。

结果应该是$ {bindings.VariablePointViewOrgZoneVariable1Iterator}。

  1. 在页面上设置表的partialTrigger属性指向树。

重新启动您的页面过滤应该工作。


我制作了一个小例子来展示您的案例。 按照说明操作,您可以在计算机上运行它,或者直接阅读自述文件。它还将选择应用于最后一个树层,您可能不需要。

​​

+0

您好,非常感谢您的详细解释。所以我明白了,问题出在Target Data Source和Iterator配置上。我将更新问题描述以包含更新后的解决方案。 –