问题描述
|
有人知道如何将渲染器附加到ExtJS4中的网格分组头吗?在ExtJS3中,我有以下工作代码,如果事件已完成(\'Y \'),则返回\'Past \';如果未完成,则返回\'Upcoming \':
function fmt_group_heading(groupVal) {
if (groupVal === \'Y\') {
return \'Past\';
} else {
return \'Upcoming\';
}
}
// create the Grid
var fitGrid = new Ext.grid.GridPanel({
store: fitGroupingStore,columns: [
{header: \"ID\",dataIndex: \'id\',hidden: true },{header: \'Event\',width:320,dataIndex: \'event\',renderer:fmt_event_description},{header: \'Events\',dataIndex: \'completed\',hidden: true,renderer: fmt_group_heading }
],stripeRows: true,// config options for stateful behavior
stateful: true,stateId: \'grid\',hideHeaders: true,view: new Ext.grid.GroupingView({
groupRenderer: \'completed\',forceFit: true
})
});
ExtJS4提供了网格分组功能,但是我不了解如何更改组文本的输出。 Ext.grid.feature.Grouping的\'groupHeaderTpl \'属性似乎仅采用从商店读取的原始字段值。
this.groupingFeature = Ext.create(\'Ext.grid.feature.Grouping\',{
groupHeaderTpl: \'Group: {completed}\'
});
// create the Grid
this.fitnessGrid = new Ext.grid.Panel({
store: this.fitnessEventStore,features: [this.groupingFeature],// etc.......
解决方法
尝试这样:
groupHeaderTpl:
\'{[fmt_group_heading(values.name)]}
({rows.length}
Item {[values.rows.length> 1? \“ s \”:
\“ \”]})\'
, groupHeaderTpl要求您在编写模板时使用{name}。它将仅使用groupField提供的值。
请参阅文档。
, 尝试这个:
groupHeaderTpl: \'{[values.rows[0].completed]}\'