• User Newbie

    Cellrender su DataGrid

    Sto' tentando di inserire un cellRender di una checkbox su una colonna di un DataGrid.
    Ho scaricato un file funzionante con un esempio dal sito Adobe: http://www.adobe.com/support/documentation/it/flash/fl8/samples.html

    poi ho trovato alcuni tutorial (in particolare mi è stato segnalato mille volte questo: http://www.sephiroth.it/tutorials/flashPHP/cellRenderer/page002.php) ma non c'è verso di far funzionare il tutto all'interno di un mio fla.

    Qualcuno mi sa dire cosa c'è di sbagliato nella procedura che seguo:
    1.Creo regolarmente il DataGrid e gli inserisco dei valori (fin qui funziona perfettamente)
    2.Copio il file "CeckCellRender.as" (preso dal tutorial su sephiroth) nella stessa cartella del .fla e del .swf
    3.Nel fla creo un nuovo movieclip col nome "checkCellRender" e poi attivo esportazione per ActionScript nel primo fotogramma. Identificatore:"checkCellRender" e Classe AS2.0:"CheckCellRender". (il discorso maiuscole/minuscole è fatto appositamente come nel file originale del tutorial, ma anche inserendo tutto maiuscolo non cambia niente)
    4.Infine sulla mia colonna mi sparo un bel:
    **column.cellRenderer = "checkCellRender";

    *Il risultato alla compilazione è sempre:
    Errore Simbolo=checkCellRender, livello=Livello 1, fotogramma=1:Linea 1: Impossibile caricare la classe o l'interfaccia 'CheckCellRender'.
    Totale errori ActionScript: 1 Errori segnalati: 1

    *Suggerimenti??
    Grazie!


  • Super User

    Ciao simplemal e benvenuto nel forum GT 🙂

    L'errore che ti dà sembra che sia un problema di package.
    Non trova la classe CheckCellRender.
    Chi è column?


  • User Newbie

    ciao e grazie per la risposta..
    dopo aver fatto

    [INDENT]import mx.controls.gridclasses.DataGridColumn
    [/INDENT]
    creo le colonne così:
    [INDENT]var column: DataGridColumn = new DataGridColumn("attivo");
    column.headerText = "Attivo";
    column.cellRenderer = "checkCellRender"; // [check] cell renderer
    column.width = GridPercent(10);
    gridCampionati.addColumn(column);
    [/INDENT]ma il problema non sta' qui!
    E' proprio nel primo fogramma quando esporta il movieclip x AS!!!
    infatti mi dice:

    • Errore Simbolo=checkCellRender, livello=Livello 1, fotogramma=1:Linea 1: Impossibile caricare la classe o l'interfaccia 'CheckCellRender'.*

  • Super User

    La Classe CheckCellRender, dove la tieni rispetto al .fla ?
    E' chiaro che l'errore te lo dà sul primo fotogramma perchè Flash di default carica tutte le Classi sul primo fotogramma.

    Io non vedo dove la Classe CheckCellRender viene istanziata.
    Per capirci dovresti avere una chiamata alla Classe in questo modo:
    var my_check:CheckCellRender= new CheckCellRender();
    a meno che la Classe sia implementata solo da metodi statici per cui allora bastarebbe richiamarla senza doverla prima istanziare in questo modo:
    CheckCellRender.unsuometodo(); ma non vedo nenche questo, tranne una stringa 'CheckCellRender'......


  • User Newbie

    ciao, allora..
    la classe come ho detto è nella stessa cartella.

    Per il resto forse hai ragione, ma negli esempi che ho trovato non ho mai visto l'istanziamento della classe e difatti è la zona "morta" nella logica di programmazione che non mi permette di avere un controllo preciso sul problema.

    Io ho seguito questo esempio:
    http://livedocs.macromedia.com/flash/8_it/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003130.html

    tu noti qualcosa che mi possa essere sfuggito?
    Ancora grazie per l'aiuto...
    (sono nel pallone finchè nn risolvo la cosa)
    M


  • Super User

    Allora prova a fare così:
    metti la Classe CheckCellRender insieme con la Classe DataGridColumn qui:
    C:\Program Files\Macromedia\Flash 8\en\First Run\Classes\mx\controls\gridclasses\

    togli dalle proprietà di concatenamento l'istanziamento della Classe e importala così dalla timeline:
    import mx.controls.gridclasses.CheckCellRender


  • User Newbie

    innanzitutto grazie per la pazienza...

    Ho provato a fare come tu hai detto e non mi esce + l'errore di esportazione (ovviamente) però continuo a vedere la cella dove dovrebbe esserci il checkbox, totalmente vuota.
    Mentre se tolgo la riga:
    [INDENT]column.cellRenderer = "CheckCellRender";
    [/INDENT]vedo il valore originario di true/false.
    Ma tu lo hai mai usato questo cellRender?
    Oppure esiste qualcuno che lo abbia mai usato per dirmi come si applica in 2 parole??
    A me serve solo capire come diavolo creo il legame tra la colonna ed il file .as della classe!!!!!!
    Possibile che nessuno sappia come si fa? :bho:
    help please 😞


  • Super User

    Io non l'ho mai usato perchè di solito le classi me le creo.

    Dovrei mettermi li e provare ma sono colmo di impegni...
    A sto punto se su Sephiroth c'è un tutorial prova a postare nel suo forum 🙂


  • User Newbie

    @Flep said:

    Io non l'ho mai usato perchè di solito le classi me le creo.
    già, è quello che sto' cercando di fare, ma se non riesco neanche a far funzionare il legame cellRender->classi, mi viene leggermente difficile scrivere il codice!

    @Flep said:

    Dovrei mettermi li e provare ma sono colmo di impegni...
    Ti capiso, no problem!! Non volevo chiederti di provare tu! Cercavo solo qualcuno che avesse esperienza nell'utilizzao di cellRender, non nella creazione classi!

    @Flep said:

    A sto punto se su Sephiroth c'è un tutorial prova a postare nel suo forum 🙂
    Già, mi sa che è l'unica!

    Grazie ancora per il supporto
    ciao
    M


  • User Newbie

    HO RISOLTO.
    Nei tutorial davano per scontata una cosa (che obiettivamente era logica, ma nn m'era venuta in mente prima) e cioè che bisogna includere nella libreria anche il componente checkbox che poi viene usato nel rendering della cella... che fesso che sono stato!
    Ora funziona tutto..
    Grazie ancora, ciao


  • Super User

    Buono a sapersi 🙂 grazie del tuo contributo 🙂