That'll update the value of the cell.  

You can't do what you're trying to do.  You can't have a column with a 
different dataField per row.  The dataField for the column is the same for 
every row.

Is this data coming from a database, through a view?  You really should do this 
there.  You can set up a view column with an if/then that returns the column's 
value you want.

--- In flexcoders@yahoogroups.com, "Craig" <cra...@...> wrote:
>
> now we're getting somewhere!  but will this update the value of the col2 or 
> the value of col2 DataField?
> 
> I am trying to change the value of col2 DataField to "Profit" not the value 
> of col2 itself.
> 
> Can I use:
> 
> dgOrdExt.getChildAt(i)["Profit"].dataField = "Profit"
> 
> CS
> 
> 
> 
> 
> --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote:
> >
> > You can't use selectedItem because there is no selectedItem.  You haven't 
> > clicked a row.  Try looping through the grid.
> > 
> > In the end, I really don't understand why you don't do this in the 
> > dataCollection, or even in the source data.
> > 
> > for (var i:Number = 0; i < mygrid.numChildren; i++) {
> >                                     if (mygrid.getChildAt(i)["Kind"] == 
> > "LONG") {
> >                                             mygrid.getChildAt(i)["Profit"] 
> > = "Profit";
> >                                     }
> > else { mygrid.getChildAt(i)["Profit"] = "ShProfit"; }
> > 
> > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > >
> > > Ok... In the parent component to the datagrid I used an initialize event:
> > > 
> > >  public function initDg():void    {
> > > 
> > > if(dgOrdExt.selectedItem["Kind"]=="LONG")dgOrdExt.Profit.dataField="Profit";
> > > if(dgOrdExt.selectedItem["Kind"]=="SHORT")dgOrdExt.Profit.dataField="ShProfit";
> > > 
> > > }
> > > 
> > > it does not work.  but if I replace the code with 
> > > dgOrdExt.dataField="Profit"; which just sets the dataField without 
> > > referencing the other column the code is all working... 
> > > 
> > > I also tried creationcomplete event and that did not work either.
> > > 
> > > 
> > > 
> > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > > >
> > > > cause I was doing it within the custom component (column) itself for 
> > > > the datagrid, which can not hold an Id value, I can put it in the 
> > > > parent component however.... i'll give that a whack.
> > > > 
> > > > 
> > > > --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote:
> > > > >
> > > > > Not sure why you have all the Application.application stuff on there. 
> > > > >  Just reference the datagrid by it's id.
> > > > > 
> > > > > <mx:DataGrid id="mygrid"....>
> > > > > 
> > > > > mygrid.selectedItem["columname"] = "some value"
> > > > > 
> > > > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > > > > >
> > > > > > From within the custom component DataGrid Column I tried this code 
> > > > > > as you suggested at the initialize event but it errors:
> > > > > > 
> > > > > >                     
> > > > > > if(Application.application.CnvPos.dgOrdExt.selectedItem["Kind"]=="LONG")
> > > > > >  Profit.dataField="Profit";
> > > > > > 
> > > > > > 
> > > > > > I don't think the selecteditem field is the answer.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > > > > > >
> > > > > > > yes the datagrid is bound to an array collection.
> > > > > > > I don't want to select any item, I want to change the value of a 
> > > > > > > column's DataField to a one of two values based on the value of 
> > > > > > > another column's output.
> > > > > > > 
> > > > > > > I don't want to have to 'selecteditem' but I can try that code 
> > > > > > > below are you suggesting that I use it in the labelfunction of 
> > > > > > > the datagrid column that I am trying to change?
> > > > > > > 
> > > > > > > 
> > > > > > > --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote:
> > > > > > > >
> > > > > > > > Is the datagrid bound to a collection?  if so, change the value 
> > > > > > > > in the collection.
> > > > > > > > 
> > > > > > > > or try...
> > > > > > > > 
> > > > > > > > yourDataGrid.selectedItem["dataColumn1"] = 
> > > > > > > > yourDataGrid.selectedItem["dataColumn2"]
> > > > > > > > 
> > > > > > > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > > > > > > > >
> > > > > > > > > I am trying to set the value of a column based on the value 
> > > > > > > > > of another column.  If I use ...selectedItem... it does not 
> > > > > > > > > work, unless I am mistaken.
> > > > > > > > > 
> > > > > > > > > --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote:
> > > > > > > > > >
> > > > > > > > > > You access the value in a column of a datagrid like this...
> > > > > > > > > > 
> > > > > > > > > > yourDataGrid.selectedItem["dataColumnNameOfColumn"]
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> wrote:
> > > > > > > > > > >
> > > > > > > > > > > I GIVE UP!! I have tried everything!!.. I have a dataGrid 
> > > > > > > > > > > that binds to
> > > > > > > > > > > an ArrayCollection.  I need to change the value of one 
> > > > > > > > > > > columen (Profit)
> > > > > > > > > > > based on the value of another column (Kind) ie.. the 
> > > > > > > > > > > results (either
> > > > > > > > > > > 'LONG' or SHORT').  Here is where I'm at.  I've tried 
> > > > > > > > > > > putting code into
> > > > > > > > > > > customer DataGridColumns and labelFunctions and 
> > > > > > > > > > > ItemRenderers... but can
> > > > > > > > > > > not do it.  What seem to be working most are events in 
> > > > > > > > > > > the DataGrid
> > > > > > > > > > > Component, better than others, but comparing values in a 
> > > > > > > > > > > DataGrid is
> > > > > > > > > > > obviously impossible.
> > > > > > > > > > > 
> > > > > > > > > > > Somehow I need the code to access ArrayCollection 
> > > > > > > > > > > getItemat() but I
> > > > > > > > > > > can't do it!
> > > > > > > > > > > 
> > > > > > > > > > > Please help!
> > > > > > > > > > > 
> > > > > > > > > > > <mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml";
> > > > > > > > > > >          initialize="initTA()">
> > > > > > > > > > > 
> > > > > > > > > > >              <positions:KindColumn id="Kind"
> > > > > > > > > > >                  headerText="Kind"
> > > > > > > > > > >                  dataField="Kind"
> > > > > > > > > > >                  
> > > > > > > > > > > itemRenderer="com.steury.baseClasses.CellFieldTrd"/>
> > > > > > > > > > >              <positions:ProfitColumn id="Profit"
> > > > > > > > > > >                  headerText="Profit"/>
> > > > > > > > > > > 
> > > > > > > > > > >      <mx:Script>
> > > > > > > > > > >          <![CDATA[
> > > > > > > > > > >          import mx.collections.ArrayCollection;
> > > > > > > > > > >          import com.steury.baseClasses.*;
> > > > > > > > > > >          import mx.core.Application;
> > > > > > > > > > >          import 
> > > > > > > > > > > mx.controls.dataGridClasses.DataGridListData;
> > > > > > > > > > >          import flash.events.Event;
> > > > > > > > > > >          import mx.core.ClassFactory;
> > > > > > > > > > >          import com.steury.controls.positions.*;
> > > > > > > > > > >          import 
> > > > > > > > > > > mx.controls.dataGridClasses.DataGridColumn;
> > > > > > > > > > >          import mx.controls.DataGrid;
> > > > > > > > > > > 
> > > > > > > > > > >          private function initTA():String {
> > > > > > > > > > >              if 
> > > > > > > > > > > (value[Kind.dataField]=="LONG")Profit.dataField="Profit";
> > > > > > > > > > >              if
> > > > > > > > > > > (value[Kind.dataField]=="SHORT")Profit.dataField="ShProfit";
> > > > > > > > > > >              Profit.itemRenderer=new
> > > > > > > > > > > ClassFactory(com.steury.baseClasses.CellFieldInt);
> > > > > > > > > > >              return myDec.format(Profit)+"%";
> > > > > > > > > > >              }
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > --- In flexcoders@yahoogroups.com, "Craig" <craigj@> 
> > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > I am trying to access the value of a DataGridColumn and 
> > > > > > > > > > > > change the
> > > > > > > > > > > > DataField for another column based on this value...
> > > > > > > > > > > > Here is my code:
> > > > > > > > > > > >
> > > > > > > > > > > > <?xml version="1.0" encoding="utf-8"?>
> > > > > > > > > > > > <mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml";
> > > > > > > > > > > >               creationComplete="getDp()" >
> > > > > > > > > > > >
> > > > > > > > > > > > ... Datagrid>
> > > > > > > > > > > >         <mx:columns>
> > > > > > > > > > > >              <mx:DataGridColumn dataField="Ticker"
> > > > > > > > > > > >                   headerText="Ticker"/>
> > > > > > > > > > > >              <mx:DataGridColumn id="Kind"
> > > > > > > > > > > >                  dataField="Kind"
> > > > > > > > > > > > itemRenderer="com.steury.baseClasses.CellFieldTrd" />
> > > > > > > > > > > >              <mx:DataGridColumn id="Profit"
> > > > > > > > > > > >                  headerText="Profit"/>
> > > > > > > > > > > >
> > > > > > > > > > > > ActionScript:
> > > > > > > > > > > >
> > > > > > > > > > > > private function getDp():void  {
> > > > > > > > > > > >
> > > > > > > > > > > if(Application.application.CnvPos.dgOrdExt.selectedItem.Kind=="LONG")Pro\
> > > > > > > > > > > \
> > > > > > > > > > > >
> > > > > > > > > > > fit.dataField="Profit";Application.application.CnvPos.dgOrdExt.refresh()\
> > > > > > > > > > > \
> > > > > > > > > > > > ;
> > > > > > > > > > > > }
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > //This code works find if I use
> > > > > > > > > > > >
> > > > > > > > > > > > if(Kind.DataField="Kind")Profit.dataField="Profit";
> > > > > > > > > > > >
> > > > > > > > > > > > //above to test the rest of the code.
> > > > > > > > > > > >
> > > > > > > > > > > > I can not figure out how to access the value of the 
> > > > > > > > > > > > Datagridcolumn.  I
> > > > > > > > > > > > have tied using event listeners, etc.. which did not 
> > > > > > > > > > > > work.  Please let
> > > > > > > > > > > > me know if anyone can help this fairly simple dilemma.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Reply via email to