【问题标题】:maxSuggestedItems with Oracle ADF af:autoSuggestBehavior使用 Oracle ADF af:autoSuggestBehavior 的 maxSuggestedItems
【发布时间】:2012-07-10 04:59:26
【问题描述】:

我已经编写了一个简单的概念验证应用程序来测试使用 Oracle ADF 的自动完成字段,虽然它主要工作,但 maxSuggestedItems 属性似乎没有任何效果。 Oracle 的文档表明,放置 -1 以外的值应该限制返回的值列表,并在底部包含一个“更多...”项,这将导致整个列表被返回。相反,总是返回整个列表。

这是我必须手动实现的吗?如果是这样,一种方法将如何处理?

JSFF 页面中包含以下代码:

<af:inputText label="Accessories:" id="it4">
  <af:autoSuggestBehavior suggestItems="#{accessorySuggest.onAccessorySuggest}"
                          maxSuggestedItems="5"/>
</af:inputText>

返回建议值的方法(当然都是硬编码的)如下:

private static final String[] accessories =
{ "Alloy Wheel", "All-Weather Cargo/Trunk Mat", "All-Weather Floor Mats",
  "Audio Unit - Base", "Audio Unit - Premium", "Auto-Dimming Mirror",
  "Bluetooth", "Body Side Moldings", "Capert Floor Mats - Premium",
  "Car Cover", "Cargo Hooks", "Cargo Liner", "Suggestion 1",
  "Suggestion 2", "Suggestion 3", "Suggestion 4", "Suggestion 5",
  "Suggestion 6", "Suggestion 7", "Suggestion 8", "Suggestion 9",
  "Suggestion 10", "Suggestion 11", "Suggestion 12", "Suggestion 13",
  "Suggestion 14", "Suggestion 15", "Suggestion 16", "Suggestion 17",
  "Suggestion 18", "Suggestion 19", "Suggestion 20", "Suggestion 21",
  "Suggestion 22", "Suggestion 23", "Suggestion 24", "Suggestion 25",
  "Suggestion 26", "Suggestion 27", "Suggestion 28", "Suggestion 29",
  "Suggestion 30" };

public List onAccessorySuggest(FacesContext context,
                               AutoSuggestUIHints hints) {
    ArrayList<SelectItem> suggestItems = new ArrayList<SelectItem>();
    String submittedValue = hints.getSubmittedValue();

    //don't return anything until the user has entered at least 3 characters
    if(hints.getSubmittedValue().length() < 3) {
        return suggestItems;
    }

    for (String s : accessories) {
        if (s.toUpperCase().startsWith(submittedValue.toUpperCase())) {
            suggestItems.add(new SelectItem(s));
        }
    }

    return suggestItems;
}

【问题讨论】:

    标签: oracle-adf webcenter


    【解决方案1】:

    http://jdevadf.oracle.com/adf-richclient-demo/docs/apidocs/oracle/adf/view/rich/model/AutoSuggestUIHints.html

    实际上,您的实现应该访问并考虑传入的最大建议项目值。唯一可以开箱即用的用例是建议列表来自模型驱动的 LOV 列表在 ADF BC 中

    总而言之,您可以从 AutoSuggestUIHints 访问最大项目并缩短您的退货列表

    弗兰克

    【讨论】:

    • 谢谢弗兰克。这绝对是真的,可以限制返回的响应数量,但我无法模仿开箱即用的 BC 组件附带的“更多...”功能。我必须对返回给客户的列表做些什么,我只是希望当我找到它时,它不会太 hack-ish。 :)
    • 今天不可能。您在 ADF BC 中看到的模型驱动列表的更多链接不是通过自动建议,而是通过智能过滤器。我会提交一个增强请求,看看我们是否可以对 nehavior 标签做些什么。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多