【发布时间】:2014-03-13 20:10:26
【问题描述】:
我是 ADF 和业务组件的新手 我有一个带有部门 ID 列的表。该表是从另一个 JSF 页面填充的 我想显示部门名称而不是部门 ID 我有业务组件,其中包含我的部门表中的视图。 但我不知道如何在 adf 表中显示部门名称而不是 de id 我的 adf 表是只读的
【问题讨论】:
标签: oracle-adf
我是 ADF 和业务组件的新手 我有一个带有部门 ID 列的表。该表是从另一个 JSF 页面填充的 我想显示部门名称而不是部门 ID 我有业务组件,其中包含我的部门表中的视图。 但我不知道如何在 adf 表中显示部门名称而不是 de id 我的 adf 表是只读的
【问题讨论】:
标签: oracle-adf
您可以创建一个 LOV。您可以在此处选择需要在外部为用户显示的属性类型(在您的情况下为 DNAME)和您需要在内部存储的值类型(在您的情况下为 DNO),具体取决于所选显示用户的价值。
请参阅此链接以创建 LOV
http://techblogoracle.wordpress.com/2013/10/14/how-to-create-list-of-values-lov-in-oracle-adf/
【讨论】:
在您的 VO 中为该属性创建一个 LOV!那么您有两种可能性: 1- 在页面中重新插入表格 2- 仅插入(重新插入)您需要的属性作为该表格中的只读列!
【讨论】:
要显示部门名称而不是部门 ID,请在 ADF 表所基于的视图对象中的部门 ID 属性上创建一个 LOV,指向部门视图对象。
要更新现有的只读表,请从 JSF 中删除 departmentId 属性,然后重新添加它。确保新属性是“ADF 选择一个选项”。添加列后,选择 select one 选项下拉菜单,并将只读属性更改为 true。
<af:selectOneChoice value="#{row.bindings.DepartmentId.inputValue}"
label="#{row.bindings.DepartmentId.label}"
required="#{bindings.Employees_VO1.hints.DepartmentId.mandatory}"
shortDesc="#{bindings.Employees_VO1.hints.DepartmentId.tooltip}"
id="soc1" readOnly="true">
如果您现在运行此页面,它应该显示部门名称,而不是 id,同时仍然是只读的。
How to show departmentName instead of departmentId using an LOV - ADF
【讨论】:
如果您在相同的任务流或您共享数据控件并且您不想将您的 VO 更改为基于两个 EO,您可以添加瞬态属性 与名称,您将在填充数据的页面中填充值。
使用 LOV 太让人头疼了。如果 LOV 列表很大,您会遇到性能问题,因为您试图以错误的方式解决问题。
【讨论】:
您可以将引用的属性添加到您的 VO。 所以创建一个基于 Emp 和 Dept 的 VO。 例如在这里观看视频:https://blogs.oracle.com/shay/entry/whenvalidateitem_trigger_in_ad
【讨论】:
如果值的数量不超过 2 或 3 个值,则使用 lov 或 groovy 表达式
用法: #{row.code eq 'A' ? “批准”:“拒绝”}
【讨论】: