您的位置:首页 > 其它

ADF11g-018:ADF中使用Auto Suggest

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




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

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

SuggestedItems:EL表达式指定的方法必须声明为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




注意:图片上在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




参考文献

http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_autoSuggestBehavior.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: