ADF11g-018:ADF中使用Auto Suggest

ADF 11g中提供了Auto Suggest功能,这大大的提高了UI界面的友好性。下面来看一下关于Auto Suggest功能ADF中提供的af:autoSuggestBehavior标签:

    ADF11g-018:ADF中使用Auto Suggest_第1张图片

    maxSuggestedItems:整数,SuggestItems的返回列表值的个数,-1时返回所有过滤的结果

   SmartList: EL表达式指定的方法必须声明为public List<javax.faces.model.SelectItem>  smartList()的形式。当此项被指定时,将首先返回被过滤的结果,如果没有返回值,将自动触发SuggestedItems指定的EL表达式,从服务器获取结果。

   SuggestedItemsEL表达式指定的方法必须声明为public List<javax.faces.model.SelectItem> suggestedItems(java.lang.String value) 形式。这个属性现在已经弃用了,使用SuggestItems替代。

   SuggestItems:EL表达式指定的方法必须声明为public java.util.List<javax.faces.model.SelectItem> suggestItems(javax.faces.context.FacesContext, oracle.adf.view.rich.model.AutoSuggestUIHints)形式

 因此,可以在Manage Bean中构建方法来实现Auto Suggest功能,当然这种情况下,实现起来要写一定的代码。

    其实,我们要在页面中使用Auto Suggest功能,完全无须写一句代码,因为ADF已经帮我们实现了这些功能:

  •     在View Object中,给要使用Auto Suggest的字段添加Input List Of Value

     ADF11g-018:ADF中使用Auto Suggest_第2张图片

   注意:图片上在ID上使用Auto Suggest功能实际上是没有意义的,因为在输入的时候,也只能输入ID。因此要加适合的AutoSuggest字段

  •     在Page Def中添加List of Values,当你直接将VO拖到页面上时,选择LOV显示时,会自动产生这段代码,如果你选择的是普通文本框,则需要收到添加以下代码。当然,你完全可以拖两次。

<listOfValues StaticList="false" IterBinding="Countries1Iterator"
                  Uses="LOV_RegionId" id="RegionId"/>
  •      为标签af:autoSuggestBehavior的属性指定值。

       如果是suggestedItems,则直接指定#{bindings.RegionId.suggestedItems},此时设置maxSuggestedItems 将不起作用,默认是10。所以maxSuggestedItems一般和suggestItems配合使用。

       如果是suggestItems,则直接指定#{bindings.RegionId.suggestItems}。

       smartItems,直接指定#{bindings.RegionId.smartItems}。

    说明:解析#{bindings.RegionId}时,得到的类是FacesCtrlLOVBinding,在这个类里面对AutoSuggest已经做了实现。可以参见FacesCtrlLOVBinding的API

    ADF11g-018:ADF中使用Auto Suggest_第3张图片

参考文献

http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_autoSuggestBehavior.html

你可能感兴趣的:(bean,list,object,iterator,input)