您的位置:首页 > 其它

动态生成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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: