Evening all, I'm having some issues with an editable data grid. Basically it starts of as an empty grid and the user can populate it by adding columns and rows, but it doesn't appear to be working as I expect it to.
I can add columns using dg.addColumn() absolutely fine, and they are displayed as expected. However, when I add a new row (by adding a new Object to the dataProvier array), I can't actually edit the field until I've added another column. Once I've done this, the new row can be edited normally. I can also "force" the row to be editable by tabbing from one (already editable) row to a newly created one. Additionally, after editing a cell, it appears that sometimes the underlying data model is updated but the display is not updated. For example, using the code below, if I edit the one and only cell that's automatically created and the move the focus somewhere else, the new value isn't displayed (although I can get it back by re-editing the cell). Can anyone shed some light on this situation, or recommend another way of going about things? Thanks, Tim. PS. The code I'm testing with is as below: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"> <mx:Script> <![CDATA[ // import the grid classes so we can use them import mx.controls.gridclasses.*; // the dataprovider to use for the grid var gripDP = [{col0:""}]; // adds a new column to the data grid function gridAddColumn(colName:String) { // create a new column and give it an arbitrary name var newCol:DataGridColumn = new DataGridColumn("col"+(myDataGrid.columnCount)); // set some stuff newCol.headerText = colName; newCol.editable = true; newCol.sortable = false; // add the column myDataGrid.addColumn(newCol); myDataGrid.spaceColumnsEqually(); } // adds a new row to the data grid function gridAddRow() { // we need to generate the object with the correct cells var newRow:Object = {}; // get the current column names var aCols:Array = myDataGrid.columnNames; // loop through the column names and create an empty cell item for each for (var i = 0; i < aCols.length; i++) { newRow[aCols[i]] = ""; } // push the new row to the dataprovider gripDP.push(newRow); } ]]> </mx:Script> <!-- holder for the grid and controls --> <mx:VBox width="500" height="300"> <!-- the actual data grid --> <mx:DataGrid id="myDataGrid" dataProvider="{gripDP}" editable="true" width="100%" height="240"> <!-- by default there's already one row, which is the row titles --> <mx:columns> <mx:Array> <mx:DataGridColumn editable="true" sortable="false" headerText="-" columnName="col0" /> </mx:Array> </mx:columns> </mx:DataGrid> <!-- the buttons for controlling the datagrid --> <mx:HBox verticalAlign="bottom" width="100%"> <mx:HBox width="100%"> <mx:Label text="Col:" /> <mx:TextInput id="newColName" width="80" change="btnNewCol.enabled = newColName.text.length ? true : false" /> <mx:Button id="btnNewCol" enabled="false" label="Add Column" click="gridAddColumn(newColName.text); newColName.text = ''" /> </mx:HBox> <mx:Button label="Add Row" click="gridAddRow()" /> </mx:HBox> </mx:VBox> </mx:Application> -- ------------------------------------------------------- Badpen Tech - CF and web-tech: http://tech.badpen.com/ ------------------------------------------------------- RAWNET LTD - independent digital media agency "We are big, we are funny and we are clever!" New site launched at http://www.rawnet.com/ ------------------------------------------------------- This message may contain information which is legally privileged and/or confidential. If you are not the intended recipient, you are hereby notified that any unauthorised disclosure, copying, distribution or use of this information is strictly prohibited. Such notification notwithstanding, any comments, opinions, information or conclusions expressed in this message are those of the originator, not of rawnet limited, unless otherwise explicitly and independently indicated by an authorised representative of rawnet limited. ------------------------------------------------------- Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

