我正在使用ADF autoSuggestBehavior
来显示值列表。
但问题是它只显示以键入的字符开头的值,我想显示包含该特定字符的所有结果。
示例 - 如果有国家/地区列表并且您键入U,则会建议以U开头的国家/地区。但我想要的是显示包含字母U的所有国家/地区可能是起始字符或结束字符
请在JAVA或ADF中建议任何解决方案。
答案 0 :(得分:1)
在创建LOV的基础上转到ViewObject的ViewObjectImpl类并粘贴以下代码。
在autosuggest的情况下调用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;
}