2012-07-10 49 views
1

我已經編寫了一個簡單的概念驗證應用程序來測試使用Oracle ADF的自動填充字段,雖然它主要工作maxSuggestedItems屬性似乎沒有任何影響。 Oracle的文檔指出,將-1以外的值限制返回值的列表,並在底部包含一個「More ...」項目,這將導致返回整個列表。相反,整個列表總是返回。maxSuggestedItems與Oracle ADF af:autoSuggestBehavior

這是我必須手動實現的東西嗎?如果是這樣,那麼將如何解決?

的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; 
} 

回答

2

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

實際上,它是您的應用程序,應該訪問並考慮傳入的最大建議項值。唯一的用例可能會失效,開箱是,如果建議列表是從一個模型驅動的LOV名單即將在ADF BC

因此,在總結,你從AutoSuggestUIHints訪問最大項目的dshorten您的退貨單

弗蘭克

+0

感謝弗蘭克。這是毫無疑問的,並且可以限制返回的響應數量,但我無法做的就是模仿開箱即用的BC組件附帶的「更多...」功能。對於返回給客戶的清單,我必須做些什麼才能做到,我只是希望當我找到它時,它不是太黑客。 :) – sernaferna 2012-07-12 16:06:36

+0

它是不可能的一天。您在ADF BC中看到的模型驅動列表的更多鏈接不是通過自動建議,而是一個智能過濾器。我將提交一個增強請求,以查看我們是否可以在行爲標記上做些什麼。 – 2012-07-19 05:53:33