• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-03-2010, 00:09   #1 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
multidimensionales array als dataprovider für datagrid

hi, ich möchte gern ein csv file in einem datagrid anzeigen.
ich kann das file laden und daraus ein 2 dimensionales array bauen. aber leider klappt die anzeige im datagrid nciht. kann mir jemand auf die sprünge helfen?

HTML-Code:
         private function LoadCSV():void { 

               var loader:URLLoader = new URLLoader(); 
               configureListeners(loader); 
               var request:URLRequest = new URLRequest("http://???/test.csv");
               try { 

                   loader.load(request); 

               } catch (error:Error) { 

                   Alert.show("Unable to load requested document."); 

               } 

           } 
           

           private function configureListeners(dispatcher:IEventDispatcher):void { 
               dispatcher.addEventListener(Event.COMPLETE, completeHandler); 

           } 

           private function completeHandler(event:Event):void 

           { 

            var csvLines:Array = new Array();
            csvLines = event.target.data.split('\n');
            
            var csvHeaders:String = new String();
            csvHeaders	= csvLines.shift();
            
            var csv:Array = new Array();

            var i:Number = 0;
            var tmp:Array = new Array();
            for each (var element:Object in csvLines) {
           		 tmp[i]	= element.split(',');
           		i++;
        	}
            var csvContent:ArrayCollection = new ArrayCollection(ArrayUtil.toArray(tmp));
            
            Alert.show(tmp[0][1]);
            
            datagrid.dataProvider = csvContent;
            
           }
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 09-03-2010, 06:44   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Mach das kein 2 dimensionales Array draus, sondern ein Array das Object referenziert.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2010, 14:26   #3 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
vieln Dank für deine Antwort.

Zitat:
Zitat von Omega Psi Beitrag anzeigen
Mach das kein 2 dimensionales Array draus, sondern ein Array das Object referenziert.
wie stelle ich das an?
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 09-03-2010, 15:46   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Sorry für die schlechte Grammatik, es war früh...
Zitat:
Mach da kein 2 dimensionales Array draus, sondern ein Array das Objekte referenziert.
  1. CSV splitten
  2. Header sind erste Reihe
  3. Alle anderen Reihen werden Objekte, die in einem Array referenziert werden.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2010, 16:32   #5 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Sorry für die schlechte Grammatik, es war früh...
das verstehe ich....

Zitat:
Zitat von Omega Psi Beitrag anzeigen
  1. CSV splitten
  2. Header sind erste Reihe
  3. Alle anderen Reihen werden Objekte, die in einem Array referenziert werden.
soweit hatte ich es ja eigentlich oder?

1.
HTML-Code:
            var csvLines:Array = new Array();
            csvLines = event.target.data.split('\n');
2. (vieleicht etwas umständlich)
HTML-Code:
            
            var csvHeaders:String = new String();
            csvHeaders	= csvLines.shift();
            
            var csvHeaders:Array = new Array();
            csvHeaders = headersStr.split(',');
3. (vielelciht verstehe ich auch "referenziert" falsch)
HTML-Code:
            var tmp:Array = new Array();
            for each (var element:Object in csvLines) {
           		 tmp[i]	= element.split(',');
           		i++;
        	}
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 09-03-2010, 17:01   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Code:
// Just rows are left
var headers:Array = lines.shift();
var length:int = lines.length;
var dataProvider:Array = [];

for (var i:int = 0; i < length; i++)
{
  var row:Array = lines[i];

  // There should be as many headers as columns.
  for (var j:int = 0; j < headers.length; j++)
  {
    var data:Object = {};
    data[headers[j]] = row[j];

    dataprovider[dataprovider.length] = data;
  }
}
So in etwa.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2010, 21:02   #7 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Code:
// Just rows are left
var headers:Array = lines.shift();
var length:int = lines.length;
var dataProvider:Array = [];

for (var i:int = 0; i < length; i++)
{
  var row:Array = lines[i];

  // There should be as many headers as columns.
  for (var j:int = 0; j < headers.length; j++)
  {
    var data:Object = {};
    data[headers[j]] = row[j];

    dataprovider[dataprovider.length] = data;
  }
}
So in etwa.

vielen dank aber das funktioniert bei mir gar nicht. muss da nicht noch irgendwo ein split(',') rein um die Spalten zu separieren?
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 09-03-2010, 21:14   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Sorry, ich kann nicht jeden Code/jedes Snippet mal eben compilen... es war eine Lösungsskizze... ich dachte
Zitat:
Zitat von Omega Psi Beitrag anzeigen
So in etwa.
drückt das aus.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2010, 21:37   #9 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Sorry, ich kann nicht jeden Code/jedes Snippet mal eben compilen... es war eine Lösungsskizze... ich dachtedrückt das aus.
ok danke, ich werd mir das dann noch mal genauer ansehen und versuchen das auf meine bedürfnisse anzupassen.

melde mich dann bestimmt noch mal ;-)

vielen Dank
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 17-03-2010, 21:42   #10 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
ok, ich habe jetzt eine weioe rumprobiert aber kein befriedigendes Ergebnis erhalten.

Ich konvertiere die csv jetzt mittels php in xml und hol mir das ganze dann über HTTPService und packe es in eine XMLListCollection. das klapp super und kann so die XMLListCollection direkt als dataProvider nutzen.

Vielen Dank.
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Multidimensionales Array Anmos ActionScript 3 3 20-08-2008 11:50
DataGrid, dataProvider und E4X TomTom101 Flex programmieren 2 25-06-2008 17:23
DataGrid mit Klassen Array als Dataprovider redneb Flex allgemein 0 26-02-2008 10:45
DataGrid.dataProvider = array : Daten werden spiegelverkehrt eingelesen Amargosa Komponenten und SmartClips 1 27-07-2006 23:03
Multidimensionales Array compuboy1010 ActionScript 1 21 26-09-2005 10:08


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele