• User

    datagrid

    Ciao a tutti..ho un piccolo problema con flash.Devo riempire un datagrid con dei dati presi da un file xml.Dato che non si sa a priori la lunghezza dei dati da inserire nei campi..come faccio a dimensionare la larghezza delle colonne dinamicamente?
    Grazie mille..


  • Super User

    Ciao manu,
    non è cosa semplice quello che chiedi.
    Vediamo un po, incominciamo col dire:

    Per popolare il datagrid devi passargli un Array di oggetti:
    Ad esempio:
    trascina un'istanza di un datagrid nello stage e chiamalo my_dg.
    Poi nel frame della timeline scrivi:

    
    import mx.controls.DataGrid;
    var dg:DataGrid=this.my_dg;
    var data_array:Array=new Array({name:'filippo', price:2000},{name:"francesco", price:3000},
                                   {name:"luca", price:1500});
    dg.dataProvider=data_array;
    dg.setSize(200,200);
    
    

    Questo è un piccolo esempio.
    Se carichi l'xml , ad esempio crei un oggetto per ogni tag e assegni all'oggetto tante proprietà quante sono le proprietà nello stesso tag xml...
    Poi fai un push nell'array e quando hai finito di leggere l'xml passi l'array come dataprovider al datagrid.

    Fatto questo dovresti fare anche dei calcoli matematici non indifferenti per calcolare width ed height del datagrid in base a quante stringhe di dati hai nell'xml (e quindi nell'array).

    Insomma, è una cosa che io personalmente mi dovrei mettere a scriverla e mi richierebbe una discreta 'fatica' per poterlo fare.
    Non conosco il tuo livello di programmazione ma di certo quello che chiedi è fattibile con un buon background di OOP alle spalle e diversi mesi di studio. 🙂


  • User

    Grazie mille per la risposta..ma in effetti la situazione è abbastanza complicata.Posso farti un'altra domanda?
    Io devo prelevare i dati da un database tramite php e passarli all'interfaccia flash.Avevo pensato di usare come tramite un file xml.Il problema è che i dati sono tantissimi..potrebbero essere anche mille record di 7 campi ciascuno e ho paura che tale file potrebbe assumere dimensioni eccessive.Tra l'altro sarei costretta ad aggiornarlo costantemente ad ogni cambiamento dei dati nel database.
    Secondo te che metodo potrei utilizzare x il trasferimento dei dati da php a flash vista la grande quantità?
    Grazie mille ancora..ciao


  • Super User

    E' un grosso problema e ti spiego il perchè:
    personalmente ho provato ad inviare da Flash ad uno script php un array di dati con circa 25.000 stringhe e Flash andava in 'palla' perchè pare che abbia un limite di circa 257 stringhe passabili via 'POST' method.

    Per cui i tuoi 1000 records è un problema.
    L'unica soluzione che vedo (di sicuro ottima) è Flash Media server che ti tiene in 'binding' il database con Flash.


  • User

    In effetti io devo usare flash media server..ma ammetto di nn capirci nulla..è la prima volta che ci ho a che fare.
    Mi potresti xfavore spiegare un pò meglio la soluzione che hai proposto?Devo comunque usare un file xml come tramite o posso far comunicare direttamente php e flash?
    Grazie ancora..ciao


  • Super User

    Ciao, Flash Media Server non lo conosco.
    Ti consiglio di leggerti deitutorials a riguardo, ma credo che non necessiti del file xml in quanto crei un binding col db (non ne sono sicuro).