<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 閱讀(1654) 評論(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站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品福利片免费看| 亚洲中文字幕无码中文| 2022国内精品免费福利视频| 日本无卡码免费一区二区三区| 亚洲综合成人婷婷五月网址| 亚洲AV成人精品网站在线播放| 四虎国产精品成人免费久久 | 波多野结衣中文字幕免费视频| 亚洲AV人人澡人人爽人人夜夜| 好紧我太爽了视频免费国产| 亚洲va无码手机在线电影| 成人性生交大片免费看好| 日木av无码专区亚洲av毛片| 亚洲国产中文在线视频| 成年黄网站色大免费全看| 亚洲码一区二区三区| 国产精品成人啪精品视频免费| 亚洲精品无码久久久久sm| 一区二区三区观看免费中文视频在线播放 | 中中文字幕亚洲无线码| 国产一级特黄高清免费大片| 亚洲国产日韩在线人成下载| 日本高清不卡aⅴ免费网站| 亚洲日本中文字幕| 久青草视频97国内免费影视| 久久久久无码精品亚洲日韩| 青青草免费在线视频| 美女被免费网站视频在线| 成人免费毛片内射美女APP| 久久久久亚洲AV无码麻豆| 久久免费视频一区| 亚洲欧洲自拍拍偷午夜色| 久久精品成人免费看| 精品亚洲国产成人| 夜夜春亚洲嫩草影院| 无码AV动漫精品一区二区免费| 四虎影永久在线高清免费| 亚洲av无码兔费综合| 亚洲国产精品无码久久久蜜芽 | 最新国产乱人伦偷精品免费网站 | 亚洲一区二区三区91|