I have a custom itemrenderer for a datagrid's column that contains a dropdownlist (DDL). This DDL is populated with a set of numbers starting at 1 and stopping at the length of the itemrenderer's datagrid dataprovider's length (i.e. 1 thru 20). I then have the DDL'S selectedIndex set to the row number in which the DDL appears. So, looking at the datagrid, first row is set to 1, second row to 2, etc., etc. The DDL is being populated correctly as well as its selectedIndexes. This is all being handled in the prepare function of the itemrenderer.
The issue comes in when I go to change the DDL's value, if I scroll the datagrid, or mouse back over the DDL, the value of the DDL reverts back to the original value. I am pretty sure this has something to do with my code and the fact that it's been handled in the prepare function as well the itemrenderers being recycled(?). I am just not sure how to resolve it. I have included the prepare function code below: override public function prepare(hasBeenRecycled:Boolean):void { if(data != null) { // grab datagrid reference; dg = DataGrid(owner); // since prepare() is called several times only populate list_ac // to length of dg dataprovider.length; if( list_ac.length != dg.dataProvider.length){ for(var i:int=0;i< dg.dataProvider.length;i++) { list_ac.addItem(i+1); } } // set selected index of dropdownlist(ddl) for 'this' itemrenderer // to match location in row of datagrid(dg); for(var j:int = 0;j<dg.dataProvider.length;j++){ if(data.question_id == dg.dataProvider.getItemAt(j).question_id){ ddl.selectedIndex = j; break; } } } } Please let me know if anything is unclear as I tried to make it as straightforward as possible. Thanks, in advance.