30.46. <widget:pivotGrid>

pivotGrid组件为一个二维数据统计表格组件,主要对数据按类型进行统计展现

30.46.1. 构件信息

表 30.115. 构件信息

Component Typeorg.operamasks.faces.component.grid.impl.UIPivotGrid
Component Familyorg.operamasks.faces.component.grid.impl.UIPivotGrid
Component Classorg.operamasks.faces.component.grid.impl.UIPivotGrid
Tag Classorg.operamasks.faces.webapp.grid.UIPivotGridTag
Renderer Typeorg.operamasks.faces.component.grid.impl.UIPivotGrid
Renderer Class(AJAX)org.operamasks.faces.render.widget.ajax.AjaxPivotGridRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++org.operamasks.faces.component.grid.UIPivotGridBase

+++++org.operamasks.faces.component.grid.impl.UIPivotGrid

30.46.2. 属性

表 30.116. 属性

aggregator 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
The aggregation function to use to combine the measures extracted for each dimension combination. Can be any of the built-in aggregators (sum, count, avg, min, max). Can also be a function which accepts two arguments (an array of Records to aggregate, and the measure to aggregate them on) and should return a String.
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
cellClientJs 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
定制每个单元格的内容,可以自定义js代码控制
columnModel 定义类
类型 javax.el.ValueExpression(org.operamasks.faces.component.grid.GridColumnModel)
是否必须 延时求值
pivotGrid的GridColumnModel,用于进行列的相关属性的配置
first 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(int)
是否必须 延时求值
起始数据的行号
firstCellTitle 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
第一个单元格的内容
first_set 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
 
height 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
表格的高度
honorViewState 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
ajax交互时是否传递ViewState. 取值为true时(默认为false),dataGrid的ajax交互传递ViewState,为false时不传递(默认不传递)
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
idColumn 定义类
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
pivotGrid的id列,是所有pivotGrid的列中可以作为唯一标示符的一列的id
keepLastParams 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件的取数请求是否保留上次请求参数
measure 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
处理的数据对象
remoteSort 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否进行服务端排序
renderTo 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
render到dom对象的ID
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
rows 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(int)
是否必须 延时求值
每页显示的数据条数, 当paged属性为true即开启分页功能的时候才起作用
rows_set 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
 
title 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
标题,如果设置为空将不能显示panel头
value 定义类 org.operamasks.faces.component.grid.impl.UIPivotGrid
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
dataGrid的数据。默认支持的类型可以是对象数组,java.util.List,javax.faces.model.DataModel,java.sql.ResultSet,java.util.Collection(用户应自行保证使用有序的Collection实现,否则翻页时可能会出现乱序问题)。但通过指定自定义的dataProvider,可以支持其他类型。

30.46.3. 示例

下面是一个简单的二维统计表代码

       //----------------xhtml页面---------------------------------------
        <w:pivotGrid id="test" title="用户收入统计表" aggregator="sum" measure="incoming" firstCellTitle="性别和支出" height="350">
	      <w:pivotColumn type="leftAxis" value="sex" width="150"/>
	      <w:pivotColumn type="leftAxis" value="outcoming" width="150"/>
	      <w:pivotColumn type="topAxis" value="age"></w:pivotColumn>
	    </w:pivotGrid>
	   
	   //---------------------------------liteBean------------------------
	    @Bind(id="test")
		public List<UserEntity> getList()
		{
			return companys;
		}
		
		private List<UserEntity> companys = new ArrayList<UserEntity>(Arrays.asList(new UserEntity[]{
				new UserEntity("luoyg","湖南","男",30,3000,4000),
	            new UserEntity("chenjie","湖北","男",20,8000,4000),
	            new UserEntity("zhoufazhi","湖北","男",28,12000,7000),
				new UserEntity("zhangsan","贵州","女",20,12000,7000),
				new UserEntity("lili","北京","女",28,12000,7000),
				new UserEntity("liyingying","江苏","女",28,12000,7000)
	    }));
	    
	    //---------------------------------UserEntity类------------------------
	    UserEntity就省略啦,下面是它的字段
	    private String name;
		private String address;
		private String sex;
		private Integer age;
		private Integer incoming;
		private Integer outcoming;