Flex 4: динамически создаваемый DataGrid с настраиваемым ItemRender, проблема с обнаружением правой ячейки

  <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)});
}

My CustomRenderer обнаруживает щелчки пользователя и изменяет цвет выбранной ячейки. Когда я выбираю одну ячейку, скажем, в первом столбце, она окрашивается, но если я выбираю другую ячейку в том же столбце, первая не окрашивается, а вторая не окрашивается. Может быть, для всех ячеек в столбце используется один и тот же рендерер? Есть способ избежать этого?

Большое спасибо.


person ivy    schedule 08.03.2011    source источник


Ответы (1)


Я понял!

Извините, мой второй ненужный вопрос :( у моего конструктора пользовательского рендеринга есть этот код внутри:

addEventListener(FlexEvent.DATA_CHANGE, resetCell);

который сбрасывает цвет ячейки, я удалил его, и теперь кажется, что он работает ... еще раз извините.

person ivy    schedule 08.03.2011