动态生成advancedDataGrid并动态绑定itemRenderer改变单元格行列颜色的例子
2011-07-31 11:38
621 查看
如上图所示效果,根据查询的条件动态生成advancedDataGrid,其中年份列不固定,经费列和项目数列也不固定,且经费列的颜色为蓝色,国家和省级项目合计的行为绿色。需要用到动态绑定itemRenderer,代码如下:
var columnsArrayCollection : ArrayCollection=new ArrayCollection();
var colm : AdvancedDataGridColumn = new AdvancedDataGridColumn();
colm.headerText = "科技计划";
colm.dataField = "kjjh";
colm.width = 150;
colm.sortable = false;
colm.itemRenderer = new ClassFactory(sum.myRenderer);
columnsArrayCollection.addItem(colm);
var startYear : Number = Number(approval1.text);
var overYear : Number = Number(approval2.text);
if (overYear > startYear) {
overYear += 1;
}
for (var i : Number = startYear; i <= overYear ; i++){
var colm1 : AdvancedDataGridColumn = new AdvancedDataGridColumn();
var colm2 : AdvancedDataGridColumn = new AdvancedDataGridColumn();
var grop : AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup();
if (i==overYear && overYear > startYear){
colm1.headerText = "项目数";
colm1.dataField = "xmhj";
colm1.sortable = false;
colm1.setStyle("textAlign","center");
colm1.itemRenderer = new ClassFactory(sum.myRenderer);
colm2.headerText = "经费";
colm2.dataField = "jfhj";
colm2.sortable = false;
colm2.itemRenderer = new ClassFactory(sum.jfRenderer);
grop.headerText = "合计";
grop.children = new Array(colm1,colm2);
columnsArrayCollection.addItem(grop);
}
else{
colm1.headerText = "项目数";
colm1.dataField = "xm" + i.toString();
colm1.sortable = false;
colm1.setStyle("textAlign","center");
colm1.itemRenderer = new ClassFactory(sum.myRenderer);
colm2.headerText = "经费";
colm2.dataField = "jf" + i.toString();
colm2.sortable = false;
colm2.itemRenderer = new ClassFactory(sum.jfRenderer);
grop.headerText = i.toString() + "年";
grop.children = new Array(colm1,colm2);
columnsArrayCollection.addItem(grop);
}
}
advancedDataGrid.percentWidth = 100;
advancedDataGrid.percentHeight = 100;
advancedDataGrid.sortExpertMode = true;
advancedDataGrid.variableRowHeight = true;
advancedDataGrid.displayItemsExpanded = true;
advancedDataGrid.setStyle("horizontalGridLines", true);
advancedDataGrid.setStyle("horizontalGridLineColor", "#cccccc");
advancedDataGrid.groupedColumns = columnsArrayCollection.toArray();
var myGroupCol:GroupingCollection = new GroupingCollection();
myGroupCol.source = arrData;
myGroupCol.refresh();
advancedDataGrid.dataProvider = myGroupCol;
this.sumCanvas.addChild(advancedDataGrid);
相关文章推荐
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- Silverlight实用窍门系列:9.动态生成实体类,根据XML模板使用Emit生成动态类绑定到DataGrid【附代实例源码】
- 9.动态生成实体类,根据XML模板使用Emit生成动态类绑定到DataGrid
- 怎么在绑定后动态改变DataGrid中的内容
- 怎么在绑定后动态改变DataGrid中的内容
- WPF DataGrid 改变单元格字体颜色或单元格背景颜色(二)
- DataGridColoredTextBoxColumn 改变datagrid 某一特定单元格颜色
- 改变DataGrid单元格字体颜色
- Silverlight 4 DataGrid动态生成列及绑定数据
- silverlight datagrid动态生成列&动态绑定
- silverlight3 datagrid c#中动态生成模板列(日期格式)使用IValueConvert对绑定数据的格式化操作
- rand.6位数值dechex转换成16进制动态改变单元格颜色
- C# 代码动态生成label,为指定label改变颜色等
- 动态改变listctrl 单元格背景及文字颜色(非重写控件)
- .NET中动态生成的表格,当鼠标经过tr时改变tr当前颜色,当鼠标移开恢复原来的颜色
- Siverlight 动态生成的datagrid改变指定格格内的值
- DataGridColoredTextBoxColumn 改变datagrid 某一特定单元格颜色
- flex advanceddatagrid动态生成列
- Silverlight日记:动态生成DataGrid、行列装换、动态加载控件
- 改变DataGrid单元格颜色