Flex 4: динамически создаваемая DataGrid с пользовательским ItemRender, проблема с обнаружением правой ячейки - PullRequest
0 голосов
/ 08 марта 2011
  <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 обнаруживает щелчки пользователя и изменяет цвет выбранной ячейки.Когда я выбираю одну ячейку, скажем, в первом столбце, она окрашивается, но если я выбираю другую ячейку в том же столбце, первая не окрашивается, а вторая не окрашивается.Может быть, один и тот же рендерер используется для всех ячеек в столбце?Есть способ избежать этого?

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

1 Ответ

0 голосов
/ 08 марта 2011

Я понял!

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

addEventListener(FlexEvent.DATA_CHANGE, resetCell);

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

...