使用Input Text with LOV + Transient Attribute 实现显示名称保存ID
2014-08-20 21:01
155 查看
开发环境:JDevloper 11.1.2.1.0+ Oracle Database 10g Express Edition 10.2.0.1。
在上一个文章中,实现的方法是基于多个EO创建一个新VO,然后基于名称字段建立LOV。
有些开发人员不喜欢这种方式,因为使用了多个EO,觉得不够简明。
在本实验中,我在原有的VO上添加了一个临时字段(Transient Attribute):JobTitle。
通过Override VO的Row Impl类的GetJobTitle方法来实现显示名称保存ID。
以下是重点步骤说明:
1. 在EmployeesView上增加Transient Attribute:JobTitle
注意,这里要把Updatable改为Always,否则显示在页面上时,该字段为只读状态。
![](http://3.bp.blogspot.com/-emGdA4-fUyA/T3ax3rUoLTI/AAAAAAAAD80/bLGmFfIkBKQ/s1600/1.GIF)
2. 为JobTitle设置LOV
(1)
![](http://4.bp.blogspot.com/-zo0F2dEoSkc/T3ax3SP69NI/AAAAAAAAD8o/dz5i9uujB-0/s1600/2.GIF)
(2)
![](http://1.bp.blogspot.com/-AXsrHqmKk78/T3ax20Z1snI/AAAAAAAAD8c/KqqHzjtDzZU/s1600/3.GIF)
(3)
![](http://2.bp.blogspot.com/-LGZsjSf9E6k/T3ax2Yb0TjI/AAAAAAAAD8Q/09Z08F7zgYk/s1600/4.GIF)
3. 定制并生成EmployeesViewRowImpl.java
![](http://1.bp.blogspot.com/-2gV2WXA7FoI/T3ax2F10JxI/AAAAAAAAD8E/YbDIcW-rMUE/s1600/5.GIF)
重写getJobTitle方法,把内容从
/**
* Gets the attribute value for the calculated attribute JobTitle.
* @return the JobTitle
*/
public String getJobTitle() {
return (String) getAttributeInternal(JOBTITLE);
}
改成
public String getJobTitle() {
Object jobId = getAttributeInternal(JOBID);
String jobTitle = null;
if (jobId != null) {
Object[] obj = { jobId };
Key key = new Key(obj);
Row[] rows = getJobsView1().findByKey(key, 1);
if (rows != null && rows.length > 0) {
jobTitle = (String)rows[0].getAttribute(1);
}
}
return jobTitle;
}
注意,这里因为JobTitle在JobsView中是第2个Attribute,所以这里使用的是getAttribute(1)。
Project 下载:ADF_LOV_InputText_TransientName.7z
http://maping930883.blogspot.com/2012/08/adf184input-text-with-lov-transient.html
在上一个文章中,实现的方法是基于多个EO创建一个新VO,然后基于名称字段建立LOV。
有些开发人员不喜欢这种方式,因为使用了多个EO,觉得不够简明。
在本实验中,我在原有的VO上添加了一个临时字段(Transient Attribute):JobTitle。
通过Override VO的Row Impl类的GetJobTitle方法来实现显示名称保存ID。
以下是重点步骤说明:
1. 在EmployeesView上增加Transient Attribute:JobTitle
注意,这里要把Updatable改为Always,否则显示在页面上时,该字段为只读状态。
2. 为JobTitle设置LOV
(1)
(2)
(3)
3. 定制并生成EmployeesViewRowImpl.java
重写getJobTitle方法,把内容从
/**
* Gets the attribute value for the calculated attribute JobTitle.
* @return the JobTitle
*/
public String getJobTitle() {
return (String) getAttributeInternal(JOBTITLE);
}
改成
public String getJobTitle() {
Object jobId = getAttributeInternal(JOBID);
String jobTitle = null;
if (jobId != null) {
Object[] obj = { jobId };
Key key = new Key(obj);
Row[] rows = getJobsView1().findByKey(key, 1);
if (rows != null && rows.length > 0) {
jobTitle = (String)rows[0].getAttribute(1);
}
}
return jobTitle;
}
注意,这里因为JobTitle在JobsView中是第2个Attribute,所以这里使用的是getAttribute(1)。
Project 下载:ADF_LOV_InputText_TransientName.7z
http://maping930883.blogspot.com/2012/08/adf184input-text-with-lov-transient.html
相关文章推荐
- 使用Input Text with LOV 实现显示名称保存ID
- 使用Input Text with LOV 实现LOV
- 使用text-overflow:ellipsis实现文字超出用省略号显示
- 利用TextInputLayout实现hint浮动显示(二)
- 使用ReadPixels方法,实现对游戏截取任意位置的屏幕,以及保存和显示截取结果
- 使用 text-overflow: ellipsis 实现溢出文本省略号显示
- 使用TextInputLayout所遇到的坑-java.lang.UnsupportedOperationException: Failed to resolve attribute at index
- 使用ChineseKeyboard iOS10,InputTextField修正不正确的显示
- 实现点击上传文件将文件名称显示在text中
- Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示
- Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果
- 于项目需求,要实现在EditText以小椭圆显示用户名称
- UILabel如何使用sizeToFit进行宽高适配 和 sizeThatFits 以及实现总是顶端显示text的需求
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(五)----使用TextField 输入并调整排名
- 使用PHP制作 简易员工管理系统之八(使用COOKIE保存用户登陆id以及显示用户登录时间)
- input(file)点击选择图片后,图片附件名称在另一个input(text)出现的实现
- 使用text-overflow:ellipsis实现溢出文本省略号显示无需js
- 快速开发android应用2-使用TextInputLayout实现用户登录及验证
- .使用面向对象思想,输出员工信息并计算员工的工资。实现过程为:定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性; 再定义一个员工(Employee)类,该类的属
- TextInputLayout使用以及EditText自己实现监听