【问题标题】:Oracle ADF or JavaOracle ADF 或 Java
【发布时间】:2016-01-18 06:24:39
【问题描述】:

我正在使用 ADF autoSuggestBehavior 来显示值列表。 但问题是它只显示以键入字符开头的值,我想显示包含该特定字符的所有结果。

示例 - 如果有一个国家/地区列表并且您键入 U,它会建议以 U 开头的国家/地区。但我想要显示所有包含字母 U 的国家/地区,它可能是起始字符或结束字符.

请在 JAVA 或 ADF 中提出任何解决方案。

【问题讨论】:

  • 我们不会给你解决方案。你试过什么?
  • 还要说明您使用的是哪个版本的ADF? 10g、11g、12c 以及确切的次要版本,例如:11.1.1.211.1.1.411.1.1.6、...。如果还不算太晚,我建议您使用 ADF 逃脱。
  • 它的 11g 和 11.1.1.6 版本。I
  • 您可以添加您使用的代码吗? ADF标签和suggestItems方法的实现。

标签: java oracle oracle-adf


【解决方案1】:

根据制作LOV的对象,进入ViewObject的ViewObjectImpl类,粘贴以下代码。

applyViewCriteria(ViewCriteria, boolean) 在自动提示的情况下被调用,覆盖此方法将解决您的问题

@Override
    public void applyViewCriteria(ViewCriteria viewCriteria, boolean b) {
        super.applyViewCriteria(supressStartsWithClauseForLov(viewCriteria), b);
    }

    public ViewCriteria supressStartsWithClauseForLov(ViewCriteria vc){
        if(vc != null && vc.getName().contains("__lov__filterlist__vcr__")){
            ViewCriteriaRow currentRow = (ViewCriteriaRow)vc.getCurrentRow();
            if(currentRow != null){
                List criteriaItems = currentRow.getCriteriaItems();
                for(int i = 0 ; i < criteriaItems.size() ; i++){
                    ViewCriteriaItem object = (ViewCriteriaItem)criteriaItems.get(i);
                    if(object != null){
                        System.out.println("Operator is : "+object.getOperator());
                        if("STARTSWITH".equals(object.getOperator())){
                            object.setOperator("CONTAINS");
                        }
                    }
                }
            }
        }
        return vc;
    }

【讨论】:

  • 对不起,我是 ADF 的新手,这就是为什么我没有找到 ViewObjectImpl 类的原因。我通过将列表绑定到建议项来实现这一点,例如:suggestedItems="#{inOutMailBean.getSuggestedItems1 }"
  • 这个列表是在 jspx 页面加载时加载的。所以如果你能从这里指导我,这将非常有帮助,感谢你的快速回复
  • 您还没有填充 ADF 绑定中的建议项?你是怎么申请lov的?如果您只使用 viewObject 来应用 lov,那么您可以覆盖此方法
  • 不,我没有从 ADF 绑定中填充建议项。我只是从数据库中获取列表,在 init() 方法中执行 ejb 调用并将该列表绑定到建议项。
  • 没有viewObject有没有办法解决这个问题?或者如果你能告诉我如何用viewObject实现自动提示,我会尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多