Sorry correction, 'owner' in the datagrid is the DataGridRow not the column!


> -----Original Message-----
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
> Behalf Of Theodore E Patrick
> Sent: Monday, July 11, 2005 9:10 AM
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Re: Extending DataGridColumn + emitting events =
> java.lang.NullPointerException
> 
> Use a cellrenderer, the cellRenderer API was designed to extends and
> provide
> custom inner layout of datagrid cells.
> 
> There are some default objects that decorate each CellRenederer instance:
> 
>               var listOwner:MovieClip //the datagrid
>               var getCellIndex:Function
>               var getDataLabel:Function
>               var owner:MovieClip //the dataGridColumn instance
> 
> These are actually present whether you use a customCellRenderer or not. So
> in your case simply use these to listen/dispatch the events you need. Your
> Cellrenderer can add events onto these objects or broadcast events out to
> the DataGrid as things happen within the CellRenderer.
> 
> For example say I have an inner checkbox within my CellRenderer. I would
> add
> a click event onto that control where it would do something like so.
> 
> Note: 'com' is my cellRenderers inner component instance:
> 
> function click(){
> 
> //obtain the index
> 
> var index = getCellIndex()
> 
> //obtain the columnName from the Datagrid
> 
> var colName = listOwner.getColumnAt( index.columnIndex ).columnName
> 
> //edit the data because the component data had changed
> 
> listOwner.dataProvider.editField( index.itemIndex , colName , com.selected
> )
> 
> //set the dataproviders seletedIndex
> 
> listOwner.selectedIndex = index.itemIndex
> 
> //trigger a 'celledit' event in the datagrid
> 
> listOwner.dispatchEvent( { type:"cellEdit" , cell:this , column:colName,
> value:com.selected } )
> 
> }
> 
> Stump Flexcoders? Think again! :)
> 
> Cheers,
> 
> Ted ;)
> 
> 
> > Well, I found you can simply pass a Function object to the custom
> > DataGridCell and have the custom cell handle its own click method with
> > that Function.  The drawback is that the function must live in the
> > same MXML file that the DataGridCell is declared in.  I'd still much
> > rather use Flex's own event handling mechanisms.  Any other ideas?
> > Have I stumped the flexcoders?!
> 
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
> 
> 
> 
> 




--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
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/
 


Reply via email to