知识大全 JSF动态生成固定表头和行标的DataTable

Posted

篇首语:春衣少年当酒歌,起舞四顾以笑和。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSF动态生成固定表头和行标的DataTable相关的知识,希望对你有一定的参考价值。

JSF动态生成固定表头和行标的DataTable  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这个例子在jsf 下通过 JSF 动态生成DataTable 固定表头 固定行标 点击表头可排序 希望可以供大家学习和参考     自己在写动态生成DataTable的时候也查阅了很多相关文章 以及实现固定表头等等      在解决固定表头问题上我是用的两张表(加行标是 张表)实现的 因为我发现如果用JSF 的化实现固定表头几乎不可能(如果有人有好的想法 比如用JS比较在行的朋友请告诉我解决方法 谢谢)    实现给每个Header加上一个CommandLink的时候我遇到了很大的问题 就是无论如何我动态生成的这些CommandLink都没有办法触发事件(并不报错) 这个问题足足折磨了我 天     最后终于发现问题的所在 是因为我在生成CommandLink的时候没有给每个CommandLink  SetID 就加上这句话 问题立马解决

    我原来的代码是链接数据库的 但是这样的化大家也没有办法参考 所以我对代码少加修改 就算是个小例子吧 可重用 希望大家对我的代码提出宝贵意见 一起进步 谢谢

  

Dynamic jsp <%@ taglib uri=  prefix= f %><%@ taglib uri=  prefix= h %><Script language= JavaScript >  var tdW;  //Scroll  function f_scroll(Col_T Row_T DivNm)    if(Col_T!= )      document getElementById(Col_T) scrollLeft = document getElementById(DivNm) scrollLeft;        if(Row_T!= )      document getElementById(Row_T) scrollTop = document getElementById(DivNm) scrollTop;      </Script><>    <f:view>        <head>            <title>TABLE</title>            <link rel= stylesheet  type= text/css  >        </head>        <body>            <h:form>                <font size=  color= black                     style= position:absolute; left:  ; top:  ; width: ; height: >                    <h:outputText value= Please Enter:  /> </font>                <h:inputText value=  size=                     style= position:absolute; left:  ; top:  ; width: ; height:  />                <h:mandButton value= Search  action=                     style= position:absolute; left:  ; top:  ; width: ; height:  />                <table BORDER=                     STYLE= POSITION: ABSOLUTE; LEFT:  px; TOP:  px; right:  px; bottom:  px; >                    <tr>                        <td STYLE= text align: right; >                            <! Table  start >                            <! Table  end >                        </td>                        <td>                            <! Table  start >                            <Div ID= Table                                 STYLE= position: relative; top:  ; border left:  pt solid black;                                      border right:  pt solid black; height:  px; width:  px; overflow x: hidden; >                                <h:dataTable value= #myBean myHeader  var= myHeader                                     binding= #myBean headerDataTable  bgcolor= white  border=                                     cellspacing=  rendered= true  styleClass= orders                                     headerClass= ordersHeader  rowClasses= evenColumn oddColumn                                     style= position:absolute; left:  ; top:  ;                                           width:  ; height:  ; border collapse:collapse;                                     id= ree >                                </h:dataTable>                            </Div>                            <! Table  end >                        </td>                    </tr>                    <tr>                        <td STYLE= vertical align: top; >                            <! Table  start >                            <Div ID= Table                                 STYLE= border bottom:  pt solid black; border top:  pt solid black;                                    width:  px; height:  px; overflow y: hidden; position: relative; left:  ; >                                <h:dataTable value= #myBean myNum  var= myNum                                     binding= #myBean numDataTable  bgcolor= white  border=                                     cellspacing=  rendered= true  styleClass= orders                                     headerClass= ordersHeader  rowClasses= evenColumn oddColumn                                     style= position:absolute; left:  ; top:  ; width:  ; height:  ; border collapse:collapse;                                     id= dee >                                </h:dataTable>                            </Div>                            <! Table  end >                        </td>                        <td STYLE= vertical align: top; >                            <! Table  start >                            <Div ID= Table  onScroll= f_scroll( Table Table Table );                                 STYLE= height:  px; width:  px; overflow y: scroll; overflow x: scroll; >                                <h:dataTable value= #myBean myList  var= myItem                                     binding= #myBean dynamicDataTable  bgcolor= white  border=                                     cellspacing=  rendered= true  styleClass= orders                                     headerClass= ordersHeader  rowClasses= evenColumn oddColumn                                   style= position:absolute; left:  ; top:  ; width:  ; height:  ; border collapse:collapse; >                                </h:dataTable>                            </Div>                            <! Table  end >                        </td>                    </tr>                </table>            </h:form>        </body>    </f:view></>   MyBean java package mypackage;import java util ArrayList;import java util List;import javax faces application Application;import ponent UIColumn;import ponent UIOutput;import l HtmlCommandLink;import l HtmlDataTable;import l HtmlOutputText;import ntext FacesContext;import javax faces el MethodBinding;import javax faces el ValueBinding;import javax faces event ActionEvent;public class MyBean         private List<List<String>> myList;        private List<List<String>> myHeader;        private List<List<Integer>> myNum;        private HtmlDataTable dynamicDataTable;        private HtmlDataTable headerDataTable;        private HtmlDataTable numDataTable;        private static int tempWidth =  ;    // Load Data from DataBase to Every DataTable      public void loadMyList() throws Exception         myList = new ArrayList<List<String>>();                int row =  ;                while(row >  )                           int column =  ;                        String str =  o ;                        List <String> tmpvector = new ArrayList <String> ();                        while(column >  )                                 tmpvector add(str);                                column ;                        row ;                        myList add(tmpvector);                    public void loadMyHeader() throws Exception         myHeader = new ArrayList<List<String>>();        String str =  ***** ;                int column =  ;                List <String> tmpvector = new ArrayList <String> ();                while(column >  )             tmpvector add(str);                        column ;                myHeader add(tmpvector);            public void loadMyNum() throws Exception         myNum = new ArrayList<List<Integer>>();                int row =  ;                while(row <  )                               List <Integer> tmpvector = new ArrayList <Integer> ();            tmpvector add(row);                        myNum add(tmpvector);                        row++;                    //initialize Every DataTable to the Front     public void populateDynamicDataTable()         if (myList != null && myList size() >  )                         dynamicDataTable = new HtmlDataTable();                        int columns = ((List) myList get( )) size();            System out println( DisplayCloumn:     + columns);//                        for (int i =  ; i < columns; i++)                              ValueBinding myItem =             FacesContext getCurrentInstance() getApplication() createValueBinding( #myItem[  + i +  ] );                                              UIColumn column = new UIColumn();                                HtmlOutputText outputText = new HtmlOutputText();                                outputText setValueBinding( value  myItem);                outputText setStyle( width:   + tempWidth +  );                                column getChildren() add(outputText);                              column setId( col_  + i);  //You should set ID of every ponent which you create in the Backing Bean                                  dynamicDataTable getChildren() add(column);                                public void populateHeaderDataTable()                 if (myHeader != null && myHeader size() >  )                         headerDataTable = new HtmlDataTable();                        int columns = ((List) myHeader get( )) size();                            FacesContext facesContext = FacesContext getCurrentInstance();                        Application application = facesContext getApplication();                        for (int i =  ; i < columns; i++)                             HtmlCommandLink mandLink =                 (HtmlCommandLink) application createComponent(HtmlCommandLink PONENT_TYPE);                                String valueBindingExpression =  #myHeader[  + i +  ] ;                                    ValueBinding valueBinding = application createValueBinding(valueBindingExpression);                                 mandLink setValueBinding( value  valueBinding);                           mandLink setId( head_ankLink_  + i);//The most important!!! If you dont put it nothing is gonna happen                                  mandLink setStyle( color: blue );                                mandLink setStyle( width:   + tempWidth +  );                                        mandLink getAttributes();                Class[] params =  ActionEvent class ;                                MethodBinding actionListener =                   application createMethodBinding( #myBean setSelectedDocumentId  params);                                mandLink setActionListener(actionListener);                mandLink setImmediate(true);                 UIColumn column = new UIColumn();                                column getChildren() add(mandLink);                column setId( head_  + i);                headerDataTable getChildren() add(column);                                       public void populateNumDataTable()                 if (myNum != null && myNum size() >  )                         numDataTable = new HtmlDataTable();            UIOutput output = new UIOutput();                        ValueBinding myItem =              FacesContext getCurrentInstance() getApplication() createValueBinding( #myNum[ ] );                        output setValueBinding( value  myItem);                        // Set column             UIColumn column = new UIColumn();            column getChildren() add(output);            column setId( num );                        numDataTable getChildren() add(column);                   //Test Actions and ActionListeners     public void setSelectedDocumentId(ActionEvent event) throws Exception             // Getters      public HtmlDataTable getDynamicDataTable() throws Exception         if (dynamicDataTable == null)                         loadMyList(); // Reload to get most recent data                         populateDynamicDataTable();                return dynamicDataTable;            public HtmlDataTable getHeaderDataTable() throws Exception         if (headerDataTable == null)                         loadMyHeader(); // Reload to get most recent data                         populateHeaderDataTable();                return headerDataTable;        public HtmlDataTable getNumDataTable() throws Exception         if (numDataTable == null)                         loadMyNum(); // Reload to get most recent data                         populateNumDataTable();                return numDataTable;            public List<List<Integer>> getMyNum()         return myNum;            public List<List<String>> getMyHeader()         return myHeader;            public List<List<String>> getMyList()         return myList;        // Setters      public void setDynamicDataTable(HtmlDataTable dynamicDataTable)         this dynamicDataTable = dynamicDataTable;        public void setHeaderDataTable(HtmlDataTable headerDataTable)         this headerDataTable = headerDataTable;        public void setMyHeader(List<List<String>> myHeader)         this myHeader = myHeader;            public void setNumDataTable(HtmlDataTable numDataTable)         this numDataTable = numDataTable;            public void setMyNum(List<List<Integer>> myNum)         this myNum = myNum;        public void setMyList(List<List<String>> myList)         this myList = myList;       faces config xml <?xml version=  encoding= UTF ?><!DOCTYPE faces config PUBLIC  //Sun Microsystems  Inc //DTD JavaServer Faces Config  //EN   facesconfig_ _ dtd ><faces config>    <managed bean>        <managed bean name>myBean</managed bean name>        <managed bean class>mypackage MyBean</managed bean class>        <managed bean scope>session</managed bean scope>    </managed bean></faces config> styles css orders     border: thin solid black; ordersHeader     text align: center;    font style: ;    color: Snow;    font size:  px;    background: Teal; evenColumn     text align: center;    font size:  px;    background: #F FFFF; oddColumn     text align: center;    font size:  px;    background: white; cha138/Article/program/Java/hx/201311/26840

相关参考

知识大全 创建表头固定,表体可滚动的GridView

创建表头固定,表体可滚动的GridView  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本方法

火灾保险合同的特点

火灾保险合同的特点(1)火灾保险合同的保险标的,是陆上处于相对静止状态条件下的各种财产物资。动态条件下或处于运输中的财产物资,不能作为火灾保险的投保标的。(2)火灾保险合同所承保财产的存放地址是固定的

知识大全 动态代码的使用(反射和动态生成类)

  在软件开发尤其是框架和底层开发时为了更灵活的控制代码常常需要进行一些动态的操作比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构用户要求动态的生成一些类然后再动态的调用类中的方法当然使用

知识大全 用Visual C#动态生成组件

用VisualC#动态生成组件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通常在写程序的时候

知识大全 ASP.NET动态生成静态页面的实例代码

ASP.NET动态生成静态页面的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!生成静态页有

知识大全 C#编程实现动态生成Word文档

C#编程实现动态生成Word文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何用C#编程实

知识大全 在ASP.NET中动态生成图形

在ASP.NET中动态生成图形  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  NET有一个很灵巧

知识大全 怎样使用Java Servlet动态生成图片详解

怎样使用JavaServlet动态生成图片详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 利用ASP.NET动态生成HTML页面

利用ASP.NET动态生成HTML页面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 JSP调用JavaBean在网页动态生成柱状图

JSP调用JavaBean在网页动态生成柱状图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我