Thats exactly what I'm doing. I have a java object mapped to a Flex object.
Here's what they look like:
public class DataVO {
private Object[][] dataValues;
public DataVO(Object[][] dataValues) {
}
}
Since there are no specific attributes, I get 0,1,2... for the column
headers in the Flex DataGrid. However, the headers show up in the
opposite order. i.e. if I was returning 5 columns, I see
Col4 Col3 Col2 Col1 Col0 instead of seeing
Col0 Col1 Col2 Col3 Col4
I got a reply earlier on this forum saying thats just the way AS
evaluates arrays. I'm looking for a clean way to display the data in
the correct order. I don't see a setAt(x,y,Object) or equivalent
method for the DataGrid so I could populate the grid from an AS
function. Is there any way to do this?
Thx for your help on this.
On 4/22/05, Abdul Qabiz <[EMAIL PROTECTED]> wrote:
>
> Hi Dhiren,
>
> var obj = {prop1:10, prop2:20}
>
> is equivalent to:
>
> var obj = new Object();
>
> obj.prop1 = 10;
> obj.prop2 = 20;
>
> And
>
> var arr = [];
>
> is equivalent to:
>
> var arr = new Array();
>
> So you can guess,
>
> var dp = [
> {Name:"Dhiren", Age:20}
> ];
>
> is an array of object.
>
> I guess, you can solve this problem by creating ValueObject in ActionScript
> as well as in Java code:
>
> ##javacode##
>
> package com.dhiren
> public class DetailObject
> {
> public String Name;
> public Integer Age;
>
> public DetailObject(String N, String A)
> {
> Name = N
> Age = A;
> }
> }
>
> DetailObject[] detailObjectArr = new DetailObject[2];
>
> detailObjectArr [0] = new DetailObject("Dhiren", 20);
> detailObjectArr [1] = new DetailObject("Abdul", 24);
>
> Send this to client to Flash...
>
> ##flexcode##
>
> class com.dhiren.DetailObject
> {
> public var Name:String;
> public var Age:Number;
>
> public static var regClass =
> Object.registerClass("com.dhiren.DetailObject", com.dhiren.DetailObject);
>
> }
>
> So now when flash would receive that array, class would automatically
> mapped..
>
> var detailValues = detailObjectArr;
>
> dg.dataProvider = detailValues;
>
> Look at this link for more:
>
> http://livedocs.macromedia.com/flex/15/flex_docs_en/00002246.htm
>
>
> -abdul
>
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED]
> Sent: Saturday, April 23, 2005 11:27 AM
> To: [email protected]
> Subject: Re: [flexcoders] Dymanic data/headers for DataGrid
>
> Abdul,
>
> The array is being returned directly from Java code. I cannot use this
> notation in a Java object: {Name:"Dhiren", Age:20}. I am not
> explicitly creating the array in ActionScript, it is being evaluated
> automatically.
>
> BTW, what does this signify? I ran your example and see that Name:
> shows up on the column header. Can you point me to some documentation
> regarding this notation?
>
> On 4/22/05, Abdul Qabiz <[EMAIL PROTECTED]> wrote:
> >
> > Hey Dhiren,
> >
> > Folling is simple example, where you can switch dataProvider of datagrid
> to
> > two different Arrays with different structure of objects..One with two
> > properties and other with three...
> >
> > -abdul
> >
> > ##DynamicDataGrid.mxml##
> >
> > <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"
> > creationComplete="onAppInit()">
> > <mx:Script>
> > <![CDATA[
> >
> > var dp1:Array;
> > var dp2:Array;
> >
> > function onAppInit()
> > {
> > dp1 = [
> > {Name:"Dhiren", Age:20},
> > {Name:"Abdul", Age:100}
> >
> > ];
> >
> > dp2 = [
> > {Subject:"Physics", Marks:95, Rank:2},
> > {Subject:"Maths", Marks:98, Rank:1}
> > ];
> >
> > }
> >
> > function changeDP(which:Array)
> > {
> > dg.removeAllColumns();
> > dg.dataProvider = which;
> > }
> >
> > ]]>
> > </mx:Script>
> >
> > <mx:DataGrid id="dg" />
> > <mx:Button label="Set dataProvider = dp1" click="changeDP(dp1)" />
> > <mx:Button label="Set dataProvider = dp2" click="changeDP(dp2)" />
> > </mx:Application>
> >
> >
> > -abdul
> >
> > -----Original Message-----
> > From: [email protected] [mailto:[EMAIL PROTECTED]
> > Sent: Saturday, April 23, 2005 11:05 AM
> > To: [email protected]
> > Subject: RE: [flexcoders] Dymanic data/headers for DataGrid
> >
> > What do you mean by 2d Object array?
> >
> > Does your array look like this:
> >
> > var dp = [
> > {Name:"Dhiren", Age:20},
> > {Name:"Abdul", Age:23}
> > ];
> >
> > -abdul
> >
> > -----Original Message-----
> > From: [email protected] [mailto:[EMAIL PROTECTED]
> > Sent: Saturday, April 23, 2005 10:34 AM
> > To: [email protected]
> > Subject: [flexcoders] Dymanic data/headers for DataGrid
> >
> > Hi guys,
> >
> > I'm sure this question has been asked before, however I can't find a
> > suitable answer searching the forum.
> >
> > What's the best way to display dynamic data resulting from a remote
> > object in a DataGrid. I have no way of knowing the headers or the
> > data which will result. I have it as follows now:
> >
> > <mx:DataGrid id="dg3" dataProvider="{my_list.dataValues}">
> > </mx:DataGrid>
> >
> > dataValues is a 2D Object array containing Strings and Doubles.
> >
> > This has a few problems:
> >
> > 1. The data is displayed in opposite order. i.e. col 0 is displayed
> > last and col n is displayed first.
> >
> > 2. I cannot display headers.
> >
> > Any help would be appreciated. Thanks.
> >
> > Dhiren
> >
> > Yahoo! Groups Links
> >
> > Yahoo! Groups Links
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>
> Yahoo! Groups Links
>
> Yahoo! Groups Links
>
>
>
>
>
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/