/ / maxSuggestedItems with Oracle ADF af: autoSuggestBehavior - oracle-adf, webcenter

maxSuggestedItems s aplikáciou Oracle ADF af: autoSuggestBehavior - oracle-adf, webcenter

Napísal som jednoduchú aplikáciu Proof-of-Concept na testovanie polí automatického dopĺňania pomocou Oracle ADF, hoci to väčšinou funguje maxSuggestedItems Zdá sa, že atribút nemá žiadny účinok. Dokumentácia spoločnosti Oracle naznačuje, že zadaním inej hodnoty ako -1 by sa mal obmedziť zoznam vrátených hodnôt a do dolnej časti by sa mala zahrnúť položka „Viac ...“, ktorá spôsobí vrátenie celého zoznamu. Namiesto toho je celý zoznam vždy vrátený.

Je to niečo, čo musím implementovať manuálne? Ak áno, ako by sa k tomu niekto priblížil?

Stránka JSFF obsahuje nasledujúci kód:

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

Metóda, ktorá vracia navrhované hodnoty (samozrejme všetky pevne kódované), je nasledujúca:

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

odpovede:

2 pre odpoveď č. 1

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

V skutočnosti by to mala byť vaša implementáciaprístup a zváženie maximálnej hodnoty ponúkaných položiek, ktorá bola odovzdaná. Jediným prípadom použitia, pre ktorý to môže fungovať, je, že zoznam návrhov pochádza zo zoznamu LOV riadeného modelmi v ADF BC

V súhrne teda získate prístup k maximálnym položkám z AutoSuggestUIHints a dshorten návratového zoznamu

úprimný