知识大全 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 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本方法
火灾保险合同的特点(1)火灾保险合同的保险标的,是陆上处于相对静止状态条件下的各种财产物资。动态条件下或处于运输中的财产物资,不能作为火灾保险的投保标的。(2)火灾保险合同所承保财产的存放地址是固定的
在软件开发尤其是框架和底层开发时为了更灵活的控制代码常常需要进行一些动态的操作比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构用户要求动态的生成一些类然后再动态的调用类中的方法当然使用
用VisualC#动态生成组件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通常在写程序的时候
ASP.NET动态生成静态页面的实例代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!生成静态页有
C#编程实现动态生成Word文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如何用C#编程实
在ASP.NET中动态生成图形 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! NET有一个很灵巧
怎样使用JavaServlet动态生成图片详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
利用ASP.NET动态生成HTML页面 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
JSP调用JavaBean在网页动态生成柱状图 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我