Hi, Tracy.

It seems that the problem was my gridInitXML had <Steps> ... </Steps>
which caused the issue. When I removed the tags, it worked!

Thanks!

Pete


--- In [email protected], "Tracy Spratt" <tspr...@...> wrote:
>
> Ah, I see a couple issues:
> 
> When you add a step, you want to only add the "step" node.  In your init
> function you are calling addChiled but passing the entire "steps" node.
> 
>  
> 
> Do you specifically want a "Payments" row to start out with?  It should
> not be necessary.  But if so, initialize the DG like this:
> 
>  gridData = new XMLListCollection(gridInitXML.step ); //that expression
> returns an XMLList with a single step node.
> 
>  
> 
> In your addStep function do:
> 
> gridData.addItem(<Step Payments="" Amount="0">);
> 
>  
> 
> Note, if you want to move the user to the new row and start them editing
> a cell, use, I believe, editedItemPosition.  You probably need to use
> callLater to invoke that because you need to give the DG time to render
> the new row before performing actions on it via the UI.
>  
> 
> Tracy
> 
>  
> 
> ________________________________
> 
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Tracy Spratt
> Sent: Monday, December 29, 2008 12:47 PM
> To: [email protected]
> Subject: RE: [flexcoders] DataGrid and XMLListCollection - newbie
> question
> 
>  
> 
> Looks pretty close.  What is not working?
> 
> Tracy
> 
>  
> 
> ________________________________
> 
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Pete Appleby
> Sent: Friday, December 26, 2008 1:51 PM
> To: [email protected]
> Subject: [flexcoders] DataGrid and XMLListCollection - newbie question
> 
>  
> 
> Hi. I am trying to get a very simple datagrid up and going. I need to
> be able to populate this from an XMLListCollection. This seems very
> simple, but I am obviously missing the point somewhere in this. It
> seems that all of the books and online searchs show web services, etc.
> as source. 
> 
> I need to be able to start at a simpler point. I have tried setting
> things up both in ActionScript and mxml. The ActionScript is commented
> out at this point. Either way would be fine. The best would be able to
> see it work in both ways.
> 
> The purpose of this snippet is:
> 
> 1. Initialize the grid with a single row. When the app starts, I have
> an empty grid. I need to start with a default row in the grid.
> 2. Allow the user to click the Add Step button to add a new row to the
> bottom of the grid.
> 3. Allow the user to click the Clear Steps button to remove all
> existing rows and then add the default row.
> 4. Later in the development of this, I will extract the bound data
> from the grid to create a payment schedule.
> 
> Here is the code.
> 
> Thanks!
> 
> Pete
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml
> <http://www.adobe.com/2006/mxml> "
> layout="absolute" applicationComplete="initApp()" >
> <mx:Script>
> <![CDATA[
> import mx.collections.XMLListCollection;
> 
> /*
> [Bindable]
> public var gridData:XMLListCollection;
> 
> private const gridInitXML:XML =
> <Steps>
> <Step Payments="1" Amount="100" />
> </Steps> ;
> */ 
> private function initApp():void{
> 
> // initialize the data grid
> 
> // gridData = new XMLListCollection( );
> // gridData.addItem( gridInitXML ); 
> }
> 
> private function handleAddStep():void {
> gridData.addItem(gridInitXML);
> }
> 
> private function handleClearSteps():void {
> gridData.removeAll();
> gridData.addItem(gridInitXML);
> }
> 
> ]]>
> </mx:Script>
> 
> <mx:XMLListCollection id="gridData" source="{Steps}" />
> <mx:XMLList id="Steps" xmlns="">
> <Step Payments="1" Amount="100" />
> </mx:XMLList>
> 
> <mx:XML id="gridInitXML" >
> <Steps>
> <Step Payments="1" Amount="100" />
> </Steps> 
> </mx:XML>
> 
> <mx:Button x="10" y="10" label="Add Step" width="86" id="btnAddStep"
> click="handleAddStep()" />
> <mx:Button x="114" y="10" label="Clear Steps" width="96"
> id="btnClearSteps" click="handleClearSteps()"/>
> 
> <mx:DataGrid id="dgSteps" editable="true" enabled="true"
> dataProvider="{gridData}"
> x="10" y="38" width="200" height="190" >
> <mx:columns>
> <mx:DataGridColumn headerText="Payments" dataField="Payments"
> width="75" textAlign="right"/>
> <mx:DataGridColumn headerText="Amount" dataField="Amount" 
> textAlign="right"/>
> </mx:columns>
> </mx:DataGrid>
> 
> </mx:WindowedApplication>
>


Reply via email to