33.11. <g:dataSeries>

DataSeries构件功能在于绑定一个数据集合,为数据表提供数据。DataSeries构件需与DataItem构件结合使用。

33.11.1. 构件信息

表 33.31. 构件信息

Component Typeorg.operamasks.faces.graph.DataSeries
Component Familyjavax.faces.Data
Component Classorg.operamasks.faces.component.graph.UIDataSeries
Tag Classorg.operamasks.faces.webapp.graph.DataSeriesTag

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UIData

+++++org.operamasks.faces.component.graph.UIDataSeries

33.11.2. 属性

表 33.32. 属性

binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
first 定义类 javax.faces.component.UIData
类型 javax.el.ValueExpression(int)
是否必须 延时求值
指定显示的数据从哪一行开始
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
rows 定义类 javax.faces.component.UIData
类型 javax.el.ValueExpression(int)
是否必须 延时求值
需要显示的行的数目
value 定义类 javax.faces.component.UIData
类型 java.lang.String
是否必须 延时求值
构件的当前值
var 定义类 javax.faces.component.UIData
类型 java.lang.String(java.lang.String)
是否必须 延时求值
代表每一行数据的变量

33.11.3. 构件API

33.11.4. 示例

以下的例子介绍了g:dataSeries标签常用方法,在创建jsp页面之前,需要创建为数据表提供数据的托管Bean:

@ManagedBean(scope=ManagedBeanScope.SESSION)
public class CategoryData extends ArrayDataModel {
  public CategoryData() {
    this(20); 
  } 
  
  public CategoryData(int numRows) {
    super(createData(numRows)); 
  } 

  public void randomize() {
    setWrappedData(createData(20)); 
  }
 
  private static CategoryDataItem[] createData(int numRows) {
    Random r = new Random(); CategoryDataItem[] data = new CategoryDataItem[numRows];
    for (int i = 0; i < numRows; i++) {
      data[i] = new CategoryDataItem("Category " + (i+1), r.nextInt(10)+1, r.nextInt(10)+1, r.nextInt(10)+1); 
    }
    return data; 
  } 
}

DataSeries构件的属性不多,但value、var、rows和first属性都是很常用的属性,了解这些属性对使用此构件很有帮助。下面是涉及DataSeries的代码:

<!-- Area Chart --> 
<g:areaChart title="Area Chart Demo" xAxisLabel="Category" yAxisLabel="Value" showLegend="true" foregroundAlpha="0.7">
  <g:dataSeries value="#{CategoryData}" var="x" rows="5">
    <g:dataLabel value="#{x.label}" />
    <g:dataItem legend="First" value="#{x.first}" /> 
    <g:dataItem legend="Second" value="#{x.second}" /> 
    <g:dataItem legend="Third" value="#{x.third}" /> 
  </g:dataSeries> 
</g:areaChart>

<!-- Bar Chart --> 
<g:barChart title="3D Bar Chart Demo" xAxisLabel="Category" yAxisLabel="Value" effect3D="true" showLegend="true"> 
  <g:dataSeries value="#{CategoryData}" var="x" rows="5" first="3"> ...... </g:dataSeries> 
</g:barChart>