【问题标题】:Set a Default Value for a dropdown in ADF为 ADF 中的下拉菜单设置默认值
【发布时间】:2021-08-03 10:53:00
【问题描述】:

在 jsff 文件中设计了一个组件,并且正在从静态 VO 中获取值。静态 Vo 中只有两个值。我需要将第一个选项设置为默认值。但是正在设置一个空值。我写了一个条件来禁用它。当它被禁用时,该值必须设置为第一个。

我尝试了 List UI Hints 并尝试启用 Include No selection item: Labeled Item first of list,我尝试创建一个只有一个值的新 vo 并在 Jsff 中呈现它(但它会使代码更多复杂的未来发展)我已经尝试创建切换器。但它们都没有按应有的方式工作。

谁能建议我一个替代方案,其中代码复杂性不会增加,默认情况下会选择第一个值。如果 jsff 中禁用标签的条件为真,则禁用。

PS:一旦字段被禁用,第一个值必须是默认设置的默认值。

【问题讨论】:

  • 您是否尝试过为您正在构建列表的 VO 属性设置值?

标签: java oracle11g oracle-adf


【解决方案1】:

似乎没有任何默认方法可以在不向视图对象添加代码的情况下使用 Oracle ADF 执行此操作。以下是如何自动选择 ADF LOV 中的第一个值(详情来自此处https://cedricleruth.com/autoselect-first-value-in-adf-lov-inside-a-table/):

  • 生成视图对象和静态 VO 的 RowImpl Java 类
  • 在此 RowImpl.java 中添加以下函数,如果尚未选择任何值,则返回第一个值
public String defaultNextStatus() {
 String value = (String) getAttributeInternal(AttributesEnum.NextStatus.index());
 if (value == null) {
  XxcrWorkflowUvVORowImpl nextStatut = (XxcrWorkflowUvVORowImpl) getWfkVA().first(); 
  //Wkfva is the VO of the LOV
  if (nextStatut != null) {
   return nextStatut.getTxtValeur();
  }
 }
 return value;
}
  • 在属性的详细信息面板中添加以下默认值表达式:adf.object.defaultNextStatus()
  • 在属性的详细信息面板中,将刷新表达式值设置为 false,以避免在 ppr/refresh 的情况下再次选择第一个值

【讨论】:

  • 不管怎样,禁用部分必须使用jsff条件处理:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 2019-12-28
  • 2011-08-17
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
相关资源
最近更新 更多