使用Input Text with LOV 实现LOV
2014-08-20 21:00
288 查看
开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。
使用ADF BC建立模型层时,可以在VO上为某个字段设置LOV。
比如,员工VO中的JobId字段来自于工作VO,这样在界面上会自动生成下拉列表。
在本实验中,我使用Input Text with List of Values来实现LOV。
重点步骤说明:
1. 创建ADF BC from tables
(1)选择Employees 和Jobs,生成ADF BC。
(2)为Employees VO 增加View Accessors:Job VO。
2. 为EmployeesView的JobId字段定义LOV
(1)设置LOV的数据源和返回值
从设置界面可以看出,返回值可以有多个。
(2)选择List Type:Input Text with List of Values;选择显示全部的字段:JobId,JobTitle,MaxSalary,MinSalary。
3. 创建页面
(1)拖放EmployeesView1 Data Control到页面上
发现JobId字段自动选择了List of Values Input组件:
4. 运行效果
(1)点击JobId旁边的“放大镜”按钮,弹出查询窗口,默认不显示任何记录。
(2)点击搜索按钮,显示出所有符合条件的记录。
(3)如果勾上“Query List Automatically”,弹出查询窗口时,会显示出所有符合条件的记录。
(4)如果选择“No Search",弹出查询窗口时,将没有查询条件,比较适合记录比较少的List。
(5)同时选择(3)和(4),运行效果如下:
(6)如果设置inputListOfValues属性editMode="select",输入框变成只读模式,不能输入,只能从下拉列表选择。
(7)如果设置inputListOfValues属性readOnly="true",输入框变成只读模式,下拉列表也没有了。
(8)如果设置inputListOfValues属性autoSubmit="true",则输入时,按下Tab键,会自动执行查询。
当输入AD_,按下Tab键,会弹出所有以 AD_开头的JobId选项,如下图:
当输入AD_V,按下Tab键,会直接补全为AD_VP,不会弹出查询窗口,因为只有一个值满足条件。
(9)在(8)的基础上,我们希望随着用户的输入,会自动下拉显示匹配的结果。
可以为inputListOfValues组件增加autoSuggestBehavior操作:<af:autoSuggestBehavior suggestedItems="#{bindings.JobId.suggestedItems}"/>。
经过测试,中文也支持自动匹配。
5. 重新新建一个页面,把LOV字段重新绑定Select One Choice组件
使用Input Text with LOV方式实现的LOV,页面上显示和保存的都是JobId,不太符合一般设计要求。
一个折中的办法是把LOV字段重新绑定到Select One Choice组件上。
这样下拉列表中显示的是JobTitle,实际保存的是JobId。
实现方式如下:
(1)拖放EmployeesView中的JobId到页面,选择Single Selection,选择ADF Select One Choice。
(2)Base Data Source选择EmployeesView1,选择Dynamic List,List Data Source选择JobsView1(如果没有,就创建一个)。
(3)返回值选择JobId,显示值选择JobTitle。
当然,这只是一个折中的办法,如何使用Input Text with LOV实现显示名称而保存ID,请见下一篇文章。
Project 下载:ADF_LOV_InputText.7z
参考文献:
1. http://docs.oracle.com/cd/E16162_01/web.1112/e16181/af_lov.htm
2. http://blogs.oracle.com/adf/entry/getting_selected_value_from_selectonechoice
3. http://husaindalal.blogspot.com/2010/03/lov-displaying-name-and-storing-value.html
4. https://blogs.oracle.com/adf/entry/combo_lov_how_to_display
5. http://cn.geekool.net/2011/11/14/how-to-restrict-the-list-of-values-retrieved-by-a-model-driven-lov/ http://maping930883.blogspot.com/2012/08/adf182input-text-with-lov-lov.html
使用ADF BC建立模型层时,可以在VO上为某个字段设置LOV。
比如,员工VO中的JobId字段来自于工作VO,这样在界面上会自动生成下拉列表。
在本实验中,我使用Input Text with List of Values来实现LOV。
重点步骤说明:
1. 创建ADF BC from tables
(1)选择Employees 和Jobs,生成ADF BC。
(2)为Employees VO 增加View Accessors:Job VO。
2. 为EmployeesView的JobId字段定义LOV
(1)设置LOV的数据源和返回值
从设置界面可以看出,返回值可以有多个。
(2)选择List Type:Input Text with List of Values;选择显示全部的字段:JobId,JobTitle,MaxSalary,MinSalary。
3. 创建页面
(1)拖放EmployeesView1 Data Control到页面上
发现JobId字段自动选择了List of Values Input组件:
4. 运行效果
(1)点击JobId旁边的“放大镜”按钮,弹出查询窗口,默认不显示任何记录。
(2)点击搜索按钮,显示出所有符合条件的记录。
(3)如果勾上“Query List Automatically”,弹出查询窗口时,会显示出所有符合条件的记录。
(4)如果选择“No Search",弹出查询窗口时,将没有查询条件,比较适合记录比较少的List。
(5)同时选择(3)和(4),运行效果如下:
(6)如果设置inputListOfValues属性editMode="select",输入框变成只读模式,不能输入,只能从下拉列表选择。
(7)如果设置inputListOfValues属性readOnly="true",输入框变成只读模式,下拉列表也没有了。
(8)如果设置inputListOfValues属性autoSubmit="true",则输入时,按下Tab键,会自动执行查询。
当输入AD_,按下Tab键,会弹出所有以 AD_开头的JobId选项,如下图:
当输入AD_V,按下Tab键,会直接补全为AD_VP,不会弹出查询窗口,因为只有一个值满足条件。
(9)在(8)的基础上,我们希望随着用户的输入,会自动下拉显示匹配的结果。
可以为inputListOfValues组件增加autoSuggestBehavior操作:<af:autoSuggestBehavior suggestedItems="#{bindings.JobId.suggestedItems}"/>。
经过测试,中文也支持自动匹配。
5. 重新新建一个页面,把LOV字段重新绑定Select One Choice组件
使用Input Text with LOV方式实现的LOV,页面上显示和保存的都是JobId,不太符合一般设计要求。
一个折中的办法是把LOV字段重新绑定到Select One Choice组件上。
这样下拉列表中显示的是JobTitle,实际保存的是JobId。
实现方式如下:
(1)拖放EmployeesView中的JobId到页面,选择Single Selection,选择ADF Select One Choice。
(2)Base Data Source选择EmployeesView1,选择Dynamic List,List Data Source选择JobsView1(如果没有,就创建一个)。
(3)返回值选择JobId,显示值选择JobTitle。
当然,这只是一个折中的办法,如何使用Input Text with LOV实现显示名称而保存ID,请见下一篇文章。
Project 下载:ADF_LOV_InputText.7z
参考文献:
1. http://docs.oracle.com/cd/E16162_01/web.1112/e16181/af_lov.htm
2. http://blogs.oracle.com/adf/entry/getting_selected_value_from_selectonechoice
3. http://husaindalal.blogspot.com/2010/03/lov-displaying-name-and-storing-value.html
4. https://blogs.oracle.com/adf/entry/combo_lov_how_to_display
5. http://cn.geekool.net/2011/11/14/how-to-restrict-the-list-of-values-retrieved-by-a-model-driven-lov/ http://maping930883.blogspot.com/2012/08/adf182input-text-with-lov-lov.html
相关文章推荐
- 使用Input Text with LOV + Transient Attribute 实现显示名称保存ID
- 使用Input Text with LOV 实现显示名称保存ID
- TextInputLayout使用以及EditText自己实现监听
- Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果
- 快速开发android应用2-使用TextInputLayout实现用户登录及验证
- input使用lable实现提示功能
- struts2 中 s:text 的使用 资源的访问 多语言实现
- 使用System.Text.RegularExpression中的API实现网页数据的抓取
- 在dnn中使用 DNN Text Suggest Control实现自动完成功能
- 正确的使用margin:0 auto与body{text-align:center;}实现元素居中
- Android使用TextView实现无下划线超链接
- 使用GNUgettext实现本地化语言支持
- 使用text-align:justify实现两端对齐一例
- Flex StringValidator with multiple input components | 多输入控件下验证器的使用
- perl pod文档使用 =head =cut =pod pod2text 实现程序usage说明
- 正确的使用margin:0 auto与body{text-align:center;}实现元素居中
- Struts2_0800_DomainModelParamInput 关于用类实现参数 使用Domain Model接收参数
- Flex List Control with Editable InputText ItemRenderer
- 使用text-align:justify实现两端对齐一例
- js实现input 的自动完成提示,Autocomplete---此文失效请使用jquery easy-ui更方便(后加)