30.40. <w:outputColumn>

OutputColumn是DataGrid的一个列。

30.40.1. 构件信息

表 30.101. 构件信息

Component Typeorg.operamasks.faces.component.grid.UIOutputColumn
Component Familyjavax.faces.Column
Component Classorg.operamasks.faces.component.grid.UIOutputColumn
Tag Classorg.operamasks.faces.webapp.widget.UIOutputColumnTag

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++javax.faces.component.UIColumn

+++++org.operamasks.faces.component.grid.base.UIOutputColumnBase

++++++org.operamasks.faces.component.grid.UIOutputColumn

30.40.2. 属性

表 30.102. 属性

align 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
列内文本的排列方式
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
clientFormatter 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
一个javascript的方法,在客户端计算每个单元格的实际显示内容时都会回调这个方法,并将这个方法的返回值作为在单元格中显示的内容(允许包含html标签)。如果没有指定,那么默认就是用该列绑定的值。指定的javascript方法可接收最多6个参数,系统在回调此方法时将自动传入这些参数,依次分别为:<br /> 1. value:单元格的数据值。若本列的requireEscape为true,则value值为已经过转义的值。 2. metadata:一个持有以下三个属性的对象,用户可以在方法中对其作出改变: (1). css:单元格所在的td元素的css样式类名。 (2). attr:在单元格内部的容器元素的HTML属性值。例如" style='color:red;' " (3). style:单元格所在的元素的样式,它将被渲染给td。例如:param.style='background-color:red;'; 3. record:当前行的数据记录对象。类型为Ext.data.Record。详情请参考Ext-JS文档。 4. rowIndex:当前单元格所在的行号。 5. colIndex:当前单元格所在的列号。 6. store:当前dataGrid所持有的数据模型。类型为Ext.data.Store。详情请参考Ext-JS文档。
converter 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(javax.faces.convert.Converter)
是否必须 延时求值
构件的内容转换器,JSF引擎会使用该转换器在用户输入和构件值类型间进行转换
editorSelector 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
一个javascript的方法,在该单元格处于可编辑状态时将使用方法返回值所指的EXT构件来编辑,通常使用场景为该构件有几个field子构件并且都设置了jsvar属性,在该单元格处于可编辑状态时需要根据该行数据记录的具体情况使用不同的构件来编辑,指定的方法必须接收一个参数,系统在回调此方法时将自动传入这个参数.
fixed 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
列的宽度是否锁定不变 (默认是false)
footerClass 定义类
类型 java.lang.String
是否必须 延时求值
表格列脚样式,样式名以空格分隔
header 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
列头显示的文本
headerClass 定义类
类型 java.lang.String
是否必须 延时求值
表格列头样式,样式名以空格分隔
hidable 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
列是否允许被隐藏
hidden 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否隐藏列
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
requireEscape 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
本列中的单元格是否自动对显示文本中的特殊字符(例如"<"号)进行转义。
sortable 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
列是否可以排序
style 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染时应用到构件的CSS风格,对应于元素的style属性
styleClass 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件上的CSS样式类
summaryRenderer 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
自定义列的渲染函数,包含3个参数. 1. v:单元格的数据值 2. param:一个持有以下三个属性的对象,用户可以在方法中对其作出改变: (1). style:单元格所在的元素的样式,它将被渲染给td。例如:param.style='background-color:red;'; (2). css:单元格所在的元素的css样式类名,它将被渲染给td。注意它必须是样式类,其值最终被添加在td 的class属性里面 (3). attr:在单元格内部的容器元素的HTML属性值。例如,设置提示信息:params.attr = 'ext:qtip="Total Count"';它将被渲染给td内部的div 3. data:合计行的整行数据
summaryType 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
合计的类型,可以设置为sum(求和), count(列数目), max(最大值), min(最小值), average(平均值).
type 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
列的显示类型. type="check",dataGrid中渲染成一个checkBox,在editDataGrid中渲染成为一个checkBox,点击时该boolean列值取反 type="password",列内容显示为●
value 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
列的值
width 定义类 org.operamasks.faces.component.grid.base.UIOutputColumnBase
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
列的宽度
wrap 定义类 org.operamasks.faces.component.grid.UIOutputColumn
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
当其中的文字超过列的宽度时,内容是否自动换行

30.40.3. 构件API

30.40.3.1. GridColumn(outputColumn构件对应的模型类)

表 30.103. 常用方法

addClientFormatter 方法签名 public void addClientFormatter(String... clientFormatters)
参数说明 clientFormatters:一个或多个clientFormmater(参考clientFormatter属性)
返回值 无返回值
方法描述 添加一个或多个clientFormatter。多个clientFormatter将按加入顺序依次执行。前一个的返回值将作为下一个的value参数值。若本列的requireEscape为true,则第一个clientFormatter获得的value值为已经过转义的值。
clearClientFormatter 方法签名 public void clearClientFormatter()
参数说明 无参数
返回值 无返回值
方法描述 清空clientFormatter队列。
getClientFormatters 方法签名 public List<String> getClientFormatters()
参数说明 无参数
返回值 当前列的clientFormatter列表。
方法描述 获得当前列上已添加的所有clientFormatter。

30.40.4. 示例

下面示例介绍了w:outputColumn的常用方法:

<w:dataGrid id="grid" jsvar="stock" paged="true" rows="10" trackMouseOver="false">
    <w:idColumn id="company" header="Company" width="260" sortable="true"/>
    <w:outputColumn id="price" header="Price" width="75" align="right" sortable="true"/>
    <w:outputColumn id="change" header="Change" width="75" sortable="true" align="right"/>
    <w:outputColumn id="pctChange" header="% Change" width="90" sortable="true" align="right"/>
    <w:outputColumn id="lastUpdated" header="Last Updated" width="90" align="right" sortable="true"/>
</w:dataGrid>