IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Télécharger fichier dans datagrid


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut Télécharger fichier dans datagrid
    Bonjour,

    Je possède un datagrid contenant 4 colonnes. Le contenu de mon datagrid est généré à partir d'une base de données. Voici mon fichier MXML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"
    	initialize="initialisation()">
     
    <!-- RemoteObject: accès service distant AMFPHP -->
    	<mx:RemoteObject id="ROService"	showBusyCursor="true" 
    		source="classif_amfphp.traitement" destination="amfphp">	<!-- modifier la source (répertoire.fichier.php)-->	
    		<mx:method name="getRequetesRegions" result="getRequetesRegionsResult(event)" />
    	</mx:RemoteObject>
     
    <!-- On fait appel au fichier ActionScript contenant toutes les fonctions 
    et les packages Actionscript utilisés  -->
    	<mx:Script source="../actionscript/amfphp/affichage.as"/>
     
    	<mx:Label text="Sollicitations des régions" styleName="titre2" horizontalCenter="0" verticalCenter="-180">
     
    	</mx:Label>
    	<mx:DataGrid id="datagrid_requetesRegions" dataProvider="{getRequetesRegionsAC}" horizontalCenter="0" verticalCenter="20" 
    		alternatingItemColors="[#ffffff, #00A5B9]" backgroundAlpha="0.5" height="340" width="340">
    		<mx:columns>
    			<!--dataField correspond au champ de la table-->
    			<mx:DataGridColumn headerText="Nom" dataField="nom" width="70"/> 
    			<mx:DataGridColumn headerText="Adresse email" dataField="mail" width="70"/>
    			<mx:DataGridColumn headerText="Sujet" dataField="sujet" width="80"/>
    			<mx:DataGridColumn headerText="fileURL" dataField="fileURL" width="160"/>
     
    		</mx:columns>
    	</mx:DataGrid>
     
    </mx:Canvas>
    La 4ème colonne contient le nom de différents fichiers que j'aimerais télécharger, sachant que mes fichiers sont toujours uploadés auparavant vers le même répertoire de mon serveur qui est: "http://localhost/uploads/".
    Ci dessous mon fichier Actionscript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // ActionScript file
    import mx.collections.ArrayCollection;
    import mx.rpc.events.ResultEvent;
     
    // variable liée, récupération des données
    [Bindable]
    private var getRequetesRegionsAC: ArrayCollection;
     
    // méthode de récupération du contenu de la table des mises à jour
    private function getRequetesRegionsResult(evt:ResultEvent):void
    {
    	getRequetesRegionsAC = ArrayCollection(evt.result);
    }
     
    //initialisation de l'application
    private function initialisation():void
    {
    	ROService.getRequetesRegions();
    }
    Ma question est: comment je pourrais télécharger chacun de ses fichiers listés dans mon datagrid en cliquant sur le nom de chaque fichier??

    J'ai pensé à implanter une fonction AS à laquelle je fais appel, du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private function ouvrir():void
     		{     
     			var url:URLRequest = new URLRequest('http://expresso/classif/test/flex/uploads/'+nomFichier);        
     			navigateToURL(url) ;
     		}
    Mais comment récupérer "nomFichier" qui correspond à la colonne 4 ??

    J'espère que j'ai été clair, merci de votre aide ;-)

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Salut,

    Pourquoi n'utiliserais tu pas un itemRenderer sur lequel tu ajoutes un évènement ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Citation Envoyé par ellene Voir le message
    Pourquoi n'utiliserais tu pas un itemRenderer sur lequel tu ajoutes un évènement ?
    Pourrais tu m'expliquer plus? désolé je suis débutant flex.
    est ce que tu veux dire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <!--dataField correspond au champ de la table-->
    			<mx:DataGridColumn headerText="Nom" dataField="nom" width="70"/> 
    			<mx:DataGridColumn headerText="Adresse email" dataField="mail" width="70"/>
    			<mx:DataGridColumn headerText="Sujet" dataField="sujet" width="80"/>
    			<mx:itemRenderer>
    			<mx:DataGridColumn headerText="fileURL" dataField="fileURL" width="160"/>	
    			</mx:itemRenderer>

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Non ça ne s'utilise pas comme ça .
    Voici un exemple très complet de PhilFlash : http://philflash.inway.fr/flex/dgRen...ple/index.html

    Mais pour faire simple :
    1 - Tu crées un itemrenderer FileUrlRenderer du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center">
       <mx:Script>
            <![CDATA[
    private function onClick():void{
    // ton traitement
    }
     
            ]]>
        </mx:Script>
        <mx:LinkButton id="editor" selected="{data.fileUrl}" click="onClick"/>
    </mx:VBox>
    2 - Tu l'ajoutes au niveau de ta datagrid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <mx:DataGridColumn headerText="fileURL" 
                                  itemRenderer="FileUrlRenderer"/>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Par défaut
    Citation Envoyé par ellene Voir le message
    Mais pour faire simple :
    1 - Tu crées un itemrenderer FileUrlRenderer du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center">
       <mx:Script>
            <![CDATA[
    private function onClick():void{
    // ton traitement
    }
     
            ]]>
        </mx:Script>
        <mx:LinkButton id="editor" selected="{data.fileUrl}" click="onClick"/>
    </mx:VBox>
    Pour mon cas, "// ton traitement" serait un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var url:URLRequest = new URLRequest('http://expresso/TableauMensuel/Fichiers/'+"nom de mon Fichier");
    navigateToURL(url) ;
    N'est ce pas? et comment je peux récupérer le nom de mon fichier qui est dans la colonne 4 de mon datagrid?

    Sinon, j'ai les erreurs suivantes quand j'essaye d'implanter le CODE que tu me fournies:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1120: Accès à la propriété non définie FileUrlRenderer.
    1172: La définition FileUrlRenderer est introuvable.
    Est ce que le mode de fonctionnement de ton CODE serait le suivant:
    à chaque fois que je sélectionne une ligne et que je clique sur "LinkButton", je lance le téléchargement du fichier?

    Merci encore une fois.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    As tu crée le composant FileUrlRenderer.mxml comme expliqué dans l'étape 1 ?
    Tu peux aussi regarder l'exemple que je t'ai envoyé sinon en voila un un peu plus simple : http://blog.flexmonkeypatches.com/20...derer-example/

    Est ce que le mode de fonctionnement de ton CODE serait le suivant:
    à chaque fois que je sélectionne une ligne et que je clique sur "LinkButton", je lance le téléchargement du fichier?
    Le mode de fonctionnement que tu auras : Lorsque tu cliques sur LinkButton il va lancer le téléchargement.

    N'est ce pas? et comment je peux récupérer le nom de mon fichier qui est dans la colonne 4 de mon datagrid?
    Tu peux récupérer ta valeur de la façon suivante :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/06/2011, 14h47
  2. Réponses: 0
    Dernier message: 14/11/2010, 15h02
  3. Télécharger un fichier dans un dossier précis
    Par sapeurpompier26 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 09/07/2010, 11h59
  4. Télécharger fichier dans base de données
    Par isarian dans le forum ASP.NET
    Réponses: 16
    Dernier message: 22/05/2008, 15h13
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo