JSF dataTable 添加列 动态创建数据表 列
- @Named
- @ViewScoped
- public class LiveRangeService implements Serializable {
- private List< Map<String, ColumnModel> > tableData;
- private List<ColumnModel> tableHeaderNames;
- public List<Map<String, ColumnModel>> getTableData() {
- return tableData;
- }
- public List<ColumnModel> getTableHeaderNames() {
- return tableHeaderNames;
- }
- public void PlayListMB() {
- tableData = new ArrayList< Map<String, ColumnModel> >();
- //Generate table header.
- tableHeaderNames = new ArrayList<ColumnModel>();
- for (int j = 0; j < 5; j++) {
- tableHeaderNames.add(new ColumnModel("header "+j, " col:"+ String.valueOf(j+1)));
- }
- //Generate table data.
- for (int i = 0; i < 10; i++) {
- Map<String, ColumnModel> playlist = new HashMap<String, ColumnModel>();
- for (int j = 0; j < 5; j++) {
- playlist.put(tableHeaderNames.get(j).key,new ColumnModel(tableHeaderNames.get(j).key,"row:" + String.valueOf(i+1) +" col:"+ String.valueOf(j+1)));
- }
- tableData.add(playlist);
- }
- }
- static public class ColumnModel implements Serializable {
- private String key;
- private String value;
- public ColumnModel(String key, String value) {
- this.key = key;
- this.value = value;
- }
- public String getKey() {
- return key;
- }
- public String getValue() {
- return value;
- }
- }
- <h:form>
- <p:dataTable id="tbl" var="result"
- value="#{liveRangeService.tableData}"
- rendered="#{not empty liveRangeService.tableData}"
- rowIndexVar="rowIndex"
- >
- <f:facet name="header"> header table </f:facet>
- <p:column>
- <f:facet name="header">
- <h:outputText value="序号" />
- </f:facet>
- <h:outputText value="#{rowIndex+1}" />
- </p:column>
- <p:columns value="#{liveRangeService.tableHeaderNames}"
- var="mycolHeader" columnIndexVar="colIndex">
- <f:facet name="header">
- <h:outputText value="#{mycolHeader.value}" />
- </f:facet>
- <h:outputText value="#{result[mycolHeader.key].value}" />
- <br />
- </p:columns>
- </p:dataTable>
- </h:form>
- 使用primefaces实现。需要一个表header的list,里面存放列的标题。数据存放在map里面,key是标题,value是值即可。使用自定义的ColumnModel类,是为了把标题和数据用key对应起来,真正的标题内容可以设定。
- 官方的示例:
http://www.primefaces.org/showcase/ui/data/datatable/columns.xhtml
------------------------------------------------------------------------------------------------
表头也可以直接写好,以后直接columns写入每列值就行。但是不写头,最后导出excel就没有头了。
- <h:form>
- <p:dataTable id="tbl" var="result"
- value="#{liveRangeService.tableData}"
- rendered="#{not empty liveRangeService.tableData}"
- rowIndexVar="rowIndex"
- paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} {Exporters}"
- paginator="true" style="margin-bottom:20px">
- <f:facet name="{Exporters}">
- <h:commandButton id="exportcvs" value="导出表格"
- class="btn btn-default">
- <p:dataExporter type="xls" target="tbl"
- fileName="#{liveRangeService.filename}" />
- </h:commandButton>
- </f:facet>
- <f:facet name="header"> header table </f:facet>
- <p:columnGroup type="header">
- <p:row>
- <p:column rowspan="2" headerText="Player" />
- <p:column colspan="2" headerText="users" />
- </p:row>
- <p:row>
- <p:column headerText="number" />
- <p:column headerText="percent" />
- </p:row>
- </p:columnGroup>
- <p:column>
- <h:outputText value="my name" />
- </p:column>
- <p:columns value="#{liveRangeService.tableHeaderNames}"
- var="mycolHeader" columnIndexVar="colIndex">
- <h:outputText value="#{result[mycolHeader.key].value}" />
- <br />
- </p:columns>
- </p:dataTable>
- </h:form>
JSF dataTable 添加列 动态创建数据表 列的更多相关文章
- laravel在控制器中动态创建数据表
Schema::connection('usertable')->create('test', function ($table) { $table->increments('id'); ...
- 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系
protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...
- SqlServer创建数据表描述及列描述信息
SqlServer创建数据表描述及列描述信息 Intro Q: 为什么要创建描述信息? A: 鼠标悬停在对应表和列上时,会出现描述信息,可以提高工作的效率,借助工具我们根据数据表可以生成Model,可 ...
- MySQL学习笔记_2_MySQL创建数据表(上)
MySQL创建数据表(上) 一.创建数据表的SQL语句模型[弱类型] CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], 字段名2 列的类型[属性][ ...
- MySQL创建数据表
* 创建数据表 * * * 一.什么是数据表 * * * * 二.创建数据表的SQL语句模型 * * DDL * * ...
- laravel使用Schema创建数据表
1.简介 迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel的schema构建器结对从而可以很容易地构建应用的数据库表结构.如果你曾经告知小组成员需要手 ...
- XamarinSQLite教程创建数据表
XamarinSQLite教程创建数据表 新创建的数据库没有任何表.开发者需要手动添加数据表,并添加测试所需的数据. 1.创建数据表 为了存储数据,开发者需要添加自己的表,并设计表的结构.操作步骤如下 ...
- MySQL创建数据表并建立主外键关系
为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB. 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型. 外键列和参照列必须创建索引, ...
- MySQL在创建数据表的时候创建索引
转载:http://www.baike369.com/content/?id=5478 MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可以直接创建索引.基本的语法格式如下: CRE ...
随机推荐
- ASP.NET的编译原理
http://www.cnblogs.com/mdy2001212/archive/2008/01/31/1060345.html
- 20140207 - Java and Mac OS X Retina
在Mac下使用文件管理工具类似Total Commander的muCommander,muCommander的编写语言是Java,打开后发现Java不兼容Mac Retina. muCommander ...
- floyd原理以及求最小环
floyd这个东西学会了好久了,但是原理总是忘记,或者说没有真正的明白,这里在说一下. 我们要求的是任意的 i,j 之间的最短路径,用动态规划的思想来解决就是f[i,j,k]表示i到j中间节点不超过k ...
- MATLAB中白噪声的WGN和AWGN函数的使用
MATLAB中白噪声的WGN和AWGN函数的使用如下: MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一 信号 ...
- 13-mv 命令总结
- rabbitmq技术
Rabbitmq 初识rabbitmq RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现.如果不熟悉AMQP,直接看Rabbi ...
- linux基础-附件1 linux系统启动流程
附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...
- android修改系统时区
动态注册广播接收器必须有实例存在 静态不要实例存在 设置系统时区: AlarmManager mAlarmManager = (AlarmManager)getSystemService(Con ...
- Android studio 提高导入项目的速度
最近在下载了一些开源的项目在学习,在导入as时,速度要好慢,如项目大点,就更慢了,实在是坑啊! 那有没有方法能导入时间快点呀! 分析发现,as在导入项目是首先是读 来自为知笔记(Wiz)
- Java对象的访问
对象访问在Java语言中无处不在,即使最简单的访问也涉及Java栈.Java堆.方法区这三个重要的内存区域中. 例:Object obj = new Object(); Object obj ...