新的起点 新的开始
快乐生活 !
ADF(ORACLE JEE 平台)中Table的显示detail功能的使用
ADF(Application development Framework)是Oracle主推的JEE平台的解决方案,其中包括JDeveloper (开发IDE),Weblogic(Server 容器),ADF Faces(JSF 实现), ADF richFaces(JSF 中扩展组件)等等。
本文主要讨论ADF Faces中,如何控制显示Table的Details信息。
ADF Table类似于JSF标准的Table,但提供许多更有用的功能。比如显示Datail就是很好的功能,如下图:用户可以点击首列小图表,查看本行详细信息
如下图显示:
下面是相对应的JSP和BackingBean
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.01 Transitional//EN
"
"
http://www.w3.org/TR/html4/loose.dtd
"
>
<%
@ page contentType
=
"
text/html;charset=GBK
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsf/html
"
prefix
=
"
h
"
%>
<%
@ taglib uri
=
"
http://java.sun.com/jsf/core
"
prefix
=
"
f
"
%>
<%
@ taglib uri
=
"
http://xmlns.oracle.com/adf/faces
"
prefix
=
"
af
"
%>
<%
@ taglib uri
=
"
http://xmlns.oracle.com/adf/faces/html
"
prefix
=
"
afh
"
%>
<
f:view
>
<
afh:html
>
<
afh:head title
=
"
tableTest
"
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=GBK
"
/>
<
style type
=
"
text/css
"
>
body
{
}
a:link
{ color: #ffa5a5; }
</
style
>
</
afh:head
>
<
afh:body
>
<
h:form
>
<
af:table width
=
"
98%
"
value
=
"
#{tableTest.allData}
"
var
=
"
data
"
emptyText
=
"
No Data
"
disclosureListener="#{tableTest.showDetails}"
banding
=
"
none
"
varStatus
=
"
vs
"
>
<
af:column sortable
=
"
true
"
formatType
=
"
icon
"
inlineStyle
=
"
border-color:rgb(0,0,0); border-width:thin; margin:auto; text-align:center;
"
>
<
f:facet name
=
"
header
"
>
<
af:outputText value
=
"
NO.
"
/>
</
f:facet
>
<
af:outputText value
=
"
#{data.column1}
"
/>
</
af:column
>
<
af:column inlineStyle
=
"
border-color:rgb(0,0,0); border-width:thin; margin:auto; text-align:center;
"
>
<
f:facet name
=
"
header
"
>
<
af:outputText value
=
"
Last Name
"
/>
</
f:facet
>
<
af:outputText value
=
"
#{data.column2}
"
/>
</
af:column
>
<
af:column inlineStyle
=
"
border-color:rgb(0,0,0); border-width:thin; margin:auto; text-align:center;
"
>
<
f:facet name
=
"
header
"
>
<
af:outputText value
=
"
First Name
"
/>
</
f:facet
>
<
af:outputText value
=
"
#{data.column3}
"
/>
</
af:column
>
<f:facet name="detailStamp">
<af:panelGroup layout="vertical">
<af:outputText rendered="#{tableTest.showDetail}"
value="#{data.detail}"/>
<af:outputText rendered="#{tableTest.showDetail}"
value="#{data.detail}"/>
<af:outputText rendered="#{tableTest.showDetail}"
value="#{data.detail}"/>
</
af:panelGroup
>
</
f:facet
>
</
af:table
>
</
h:form
>
</
afh:body
>
</
afh:html
>
</
f:view
>
其中红色部分JSP就是显示Details信息。
disclosureListener="#{tableTest.showDetails}" 为Table加一个打开关闭Details信息的监听器,在监听器里面控制显示。
BackBean如下:
public
class
TableDataBackBean
{
private
List allData
=
new
ArrayList();
private
boolean
showDetail
=
false
;
public
TableDataBackBean()
{
TableData tableDate1
=
new
TableData(
"
1
"
,
"
vincent
"
,
"
ma
"
,
"
vincent ma'detail
"
);
TableData tableDate2
=
new
TableData(
"
2
"
,
"
barry
"
,
"
fan
"
,
"
barry fan'detail
"
);
TableData tableDate3
=
new
TableData(
"
3
"
,
"
jeny
"
,
"
chen
"
,
"
jeny chen'detail
"
);
TableData tableDate4
=
new
TableData(
"
4
"
,
"
ross
"
,
"
han
"
,
"
ross han'detail
"
);
TableData tableDate5
=
new
TableData(
"
5
"
,
"
robin
"
,
"
liu
"
,
"
robin liu'detail
"
);
TableData tableDate6
=
new
TableData(
"
6
"
,
"
walker
"
,
"
liu
"
,
"
walker liu'detail
"
);
allData.add(tableDate1);
allData.add(tableDate2);
allData.add(tableDate3);
allData.add(tableDate4);
allData.add(tableDate5);
allData.add(tableDate6);
}
public void showDetails(DisclosureEvent disclosureEvent)
{
if(disclosureEvent.isExpanded())
{
this.showDetail = true;
}
}
public
void
setAllData(List allData)
{
this
.allData
=
allData;
}
public
List getAllData()
{
return
allData;
}
public
void
setShowDetail(
boolean
showDetail)
{
this
.showDetail
=
showDetail;
}
public
boolean
isShowDetail()
{
return
showDetail;
}
}
当用户点击打开小图标时,触发如下事件:
public void showDetails(DisclosureEvent disclosureEvent) {
if(disclosureEvent.isExpanded()){
this.showDetail = true;
}
}
那么,如何只让它显示一个Detail 信息呢? 也就是打开第二个时,关闭第一个呢? 很简单
修改showDetails方法如下:
public
String oldValue
=
""
;
public
void
showDetails(DisclosureEvent disclosureEvent)
{
CoreTable activityTable1
=
(CoreTable)disclosureEvent.getComponent();
if
(disclosureEvent.isExpanded())
{
this
.showDetail
=
true
;
}
RowKeySet rowKeySet2
=
activityTable1.getDisclosureState();
Set set
=
rowKeySet2.getKeySet();
Iterator iterator
=
set.iterator();
if
(set.size()
==
2
)
{
while
(iterator.hasNext())
{
String temp
=
(String)iterator.next();
System.out.println(
"
Old Value:
"
+
oldValue);
System.out.println(
"
Two value:
"
+
temp);
if
(
!
temp.equals(oldValue))
{
oldValue
=
temp;
System.out.println(
"
Set Older Value =
"
+
temp);
break
;
}
}
set.clear();
set.add(
new
String(oldValue));
System.out.println(
"
Display:
"
+
oldValue);
}
else
if
(set.size()
==
1
)
{
while
(iterator.hasNext())
{
String temp
=
(String)iterator.next();
oldValue
=
temp;
}
set.add(
new
String(oldValue));
System.out.println(
"
only One Display:
"
+
oldValue);
}
activityTable1.setDisclosureState(rowKeySet2);
}
posted on 2009-08-02 21:00
advincenting
阅读(1650)
评论(1)
编辑
收藏
评论
#
re: ADF(ORACLE JEE 平台)中Table的显示detail功能的使用
2009-08-04 12:23
个性艺术签名
斯柯达萨丹哈速度啊随的
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
公告
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2009年8月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
统计
随笔 - 184
文章 - 13
评论 - 226
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(13)
给我留言
查看公开留言
查看私人留言
随笔分类
(71)
English
(rss)
java EE(8)
(rss)
JSF/ADF(3)
(rss)
Linux 相关(5)
(rss)
Mobile(3)
(rss)
OO设计(4)
(rss)
数据库相关(11)
(rss)
服务器 比如:WebLogic(Develop+Deploy)(4)
(rss)
生活随笔(25)
(rss)
脚本(8)
(rss)
随笔档案
(179)
2013年11月 (1)
2012年12月 (2)
2012年11月 (4)
2012年10月 (1)
2012年9月 (2)
2012年8月 (2)
2012年7月 (5)
2011年11月 (1)
2010年4月 (3)
2010年2月 (2)
2010年1月 (4)
2009年12月 (1)
2009年11月 (1)
2009年10月 (1)
2009年8月 (8)
2009年7月 (10)
2009年6月 (1)
2009年5月 (6)
2009年4月 (16)
2009年3月 (3)
2009年2月 (1)
2008年9月 (4)
2008年8月 (5)
2008年7月 (5)
2007年12月 (7)
2007年11月 (8)
2007年10月 (4)
2007年9月 (9)
2007年8月 (2)
2007年7月 (5)
2007年6月 (2)
2007年5月 (3)
2007年4月 (23)
2007年3月 (27)
文章档案
(13)
2007年7月 (5)
2007年6月 (2)
2007年5月 (1)
2007年4月 (1)
2007年3月 (4)
新闻分类
军事
(rss)
娱乐
(rss)
政策
(rss)
科技
(rss)
IT人的英语学习网站
JAVA 实例
JAVA API
JAVA站点
BEA
IBM DeveloperWorks
JAVA WORLD
优秀个人博客链接
官网学习站点
生活工作站点
最新随笔
1. JQuery Select 操作
2. java 性能调优之-快速定位引起内存泄露的代码
3. java 性能调优之-快速定位消耗CPU的Java线程
4. 在Oracle 11g中安装Demo 数据库
5. 在Weblogic上创建ADF运行的Domain
6. developer 眼中的性能问题
7. 在ADF中跟踪SQL执行时间
8. ADF 发布Android IOS 开发平台
9. ADF 介绍
10. 列转行 聚合的简单实现 ORACLE WM_CONCAT LISTAGG 函数
搜索
积分与排名
积分 - 335702
排名 - 165
最新评论
1. re: FireBug 调试JS入门 —如何调试JS
@ZengJerry
同感
--舒健
2. re: Java异常框架设计
评论内容较长,点击标题查看
--zuidaima
3. re: JQuery Select 操作
000
--12我
4. re: JQuery Select 操作
11111111111111
--12我
5. re: under the hood 中文意思
评论内容较长,点击标题查看
--leifeng
阅读排行榜
1. FireBug 调试JS入门 —如何调试JS(54047)
2. 深入浅出Java多线程(1)-方法 join(27483)
3. 通过ClassLoader说明容器热部署实现机制(11465)
4. 深入浅出多线程(4)对CachedThreadPool OutOfMemoryError问题的一些想法(7896)
5. under the hood 中文意思(7631)
评论排行榜
1. FireBug 调试JS入门 —如何调试JS(19)
2. 深入浅出Java多线程(1)-方法 join(13)
3. JDK1.6 集合类 UML 图, 更好的使用Collection类(11)
4. 请正则表达式高手给出更好的解决方案(11)
5. JavaBean之间拷贝利器-Dozer 如果现在还是原始的手动拷贝或者使用BeanUtil 赶紧换吧(10)