<mx:DataGrid id="calendarGrid"
dataProvider="{rows}"
width="100%"
height="100%">
<mx:columns/>
</mx:DataGrid>
我以这种方式动态地为其添加列和行:
var dgc0:DataGridColumn = new DataGridColumn("timeSlot");
dgc0.headerText="Hours";
hoursColumns=new Array();
hoursColumns.push(dgc0);
for (var i:int=7;i<21;i++)
{
var dgc:DataGridColumn = new DataGridColumn();
dgc.headerText=i+":00-"+(i+1)+":00";
dgc.itemRenderer=new ClassFactory(CustomRenderer);
hoursColumns.push(dgc);
}
calendarGrid.columns=slotsColumns;
for(var i:int =0;i<maxNum+1;i++)
{
rows.addItem({timeSlot:"Day n° "+(i+1)});
}
我的CustomRenderer会检测用户点击并更改所选单元格的颜色。 当我在第一列上选择一个单元格时,它会被着色但如果我在同一列上选择另一个单元格,则第一个单元格未着色,第二个单元格未着色。 也许相同的渲染器用于列中的所有单元格? 有办法避免它吗?
非常感谢。
答案 0 :(得分:0)
我知道了!
对不起我的第二个不必要的问题:(我的自定义渲染器构造函数里面有这个代码:
addEventListener(FlexEvent.DATA_CHANGE, resetCell);
重置细胞颜色,我删除它,现在似乎工作... 对不起再次。