<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    新的起點 新的開始

    快樂生活 !

    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 閱讀(1653) 評論(1)  編輯  收藏

    評論

    # re: ADF(ORACLE JEE 平臺)中Table的顯示detail功能的使用 2009-08-04 12:23 個性藝術簽名

    斯柯達薩丹哈速度啊隨的  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    公告

    Locations of visitors to this pageBlogJava
  • 首頁
  • 新隨筆
  • 聯系
  • 聚合
  • 管理
  • <2009年8月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    統計

    常用鏈接

    留言簿(13)

    隨筆分類(71)

    隨筆檔案(179)

    文章檔案(13)

    新聞分類

    IT人的英語學習網站

    JAVA站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品无码AV无码免费专区| 免费黄色网址入口| 亚洲人成欧美中文字幕| 亚洲第一页综合图片自拍| 中文字幕乱码一区二区免费| 亚洲性线免费观看视频成熟| 亚洲日本中文字幕一区二区三区| 久久精品国产这里是免费| 国产成人精品日本亚洲直接| 亚洲 另类 无码 在线| 日韩在线不卡免费视频一区| jizzjizz亚洲日本少妇| 午夜亚洲国产理论秋霞| 日韩免费高清视频网站| 日韩精品极品视频在线观看免费| 亚洲日韩精品无码专区加勒比☆| 亚洲啪啪AV无码片| 日本高清免费aaaaa大片视频| 久久狠狠躁免费观看| 日韩在线观看视频免费| 亚洲AV无码一区二区三区人| JLZZJLZZ亚洲乱熟无码| 久久精品免费一区二区喷潮| baoyu122.永久免费视频| 亚洲国产欧美一区二区三区| 亚洲成人午夜在线| 亚洲人成网站观看在线播放| 啦啦啦中文在线观看电视剧免费版 | 最近免费mv在线电影| 一级白嫩美女毛片免费| 亚洲精品国产国语| 久久夜色精品国产亚洲AV动态图| 亚洲成年看片在线观看| 好吊妞在线成人免费| 四虎在线视频免费观看视频| 任你躁在线精品免费| 国产亚洲精品第一综合| 中文字幕在线观看亚洲日韩| 亚洲综合激情视频| 亚洲狠狠综合久久| 亚洲成a人片在线观看日本|