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 :

DataGrid Clic-droit ContextMenu


Sujet :

Flex

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 293
    Points : 77
    Points
    77
    Par défaut DataGrid Clic-droit ContextMenu
    Bonjour,

    je suis coincé au niveau du ContextMenu d'un datagrid en flex,
    Le contextMenu c'est le clic-droit perso dans flash/flex
    donc voici un script :


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <?xml version="1.0" encoding="utf-8"?>
    <!-- http://blog.flexexamples.com -->
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            layout="vertical"
            verticalAlign="middle"
            backgroundColor="white" creationComplete="init();">
     
     
        <mx:Script>
            <![CDATA[
               import mx.controls.Alert;
     
                [Bindable]
                private var cm:ContextMenu;
     
              private var alert:Alert;
     
                private function init():void {
     
    		  		cm = new ContextMenu();
                    cm.hideBuiltInItems();
     
                    var cmi:ContextMenuItem = new ContextMenuItem("Copier ");
                    cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_menuItemSelect);
     
     
                    cm.customItems = [cmi];
                    cm.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelect);
                }
     
                private function contextMenu_menuSelect(evt:ContextMenuEvent):void {
                    dataGrid.selectedIndex = lastRollOverIndex;
                }
     
                private function contextMenuItem_menuItemSelect(evt:ContextMenuEvent):void {
                   var obj:Object = dataGrid.selectedItem;
                   alert = Alert.show("Property A: " + obj.@propertyA + "\\n" + "Property B: " + obj.@propertyB, obj.@label, Alert.OK);
                }
            ]]>
        </mx:Script>
     
        <mx:XML id="itemsXML">
            <items>
                <item label="Item 1" data="i001" propertyA="Item 1.A" propertyB="Item 1.B" />
                <item label="Item 2" data="i002" propertyA="Item 2.A" propertyB="Item 2.B" />
                <item label="Item 3" data="i003" propertyA="Item 3.A" propertyB="Item 3.B" />
                <item label="Item 4" data="i004" propertyA="Item 4.A" propertyB="Item 4.B" />
                <item label="Item 5" data="i005" propertyA="Item 5.A" propertyB="Item 5.B" />
                <item label="Item 6" data="i006" propertyA="Item 6.A" propertyB="Item 6.B" />
                <item label="Item 7" data="i007" propertyA="Item 7.A" propertyB="Item 7.B" />
                <item label="Item 8" data="i008" propertyA="Item 8.A" propertyB="Item 8.B" />
            </items>
        </mx:XML>
     
        <mx:Number id="lastRollOverIndex" />
     
        <mx:DataGrid id="dataGrid"
                width="400"
                dataProvider="{itemsXML.item}"
                 contextMenu="{cm}"
                 itemRollOver="lastRollOverIndex = event.rowIndex">
            <mx:columns>
                <mx:DataGridColumn id="labelCol"
                        dataField="@label"
                        headerText="Label:" />
     
                <mx:DataGridColumn id="propACol"
                        dataField="@propertyA"
                        headerText="Property A:" />
     
                <mx:DataGridColumn id="propBCol"
                        dataField="@propertyB"
                        headerText="Property B:" />
            </mx:columns>
        </mx:DataGrid>
     
        <mx:Label id="voir" text="{dataGrid.selectedItem.@label}" />
     
    </mx:Application>

    Donc j'aimerais afficher a la place de "Copier " une chose perso
    donc un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var cmi:ContextMenuItem = new ContextMenuItem("Copier "+dataGrid.selectedItem.@label);
    mais cela ne marche pas, est-ce que quelqu'un pourrait m'expliqué comment s'y prendre?

    il faudrait que sa affiche au clic droit : Copier Item 1 grâce a "label="Item 1" par exemple

    Merci d'avance

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je crois bien que le contextmenu affiche des chaine de caractères static.

    Il faut donc que tu contourne le probleme en modifiant la donnée a la main quand l'utilisateur effectue un clique droit

    donc dans ta fonction contextMenu_menuSelect
    il te faut mettre a jour le caption de ton item

    Le plus simple serait de definir le ContextMenuItem correspondant a l'item copié en membre de ta classe et de simplement faire dans la fonction
    contextMenu_menuSelect

    copyItem.caption = dataGrid.selectedItem.@label

Discussions similaires

  1. Clic droit/gauche souris
    Par Mouse! dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/05/2013, 20h34
  2. Détecter clic droit sur le header commun (lignes & colonnes) d'un datagrid
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 20/05/2011, 14h07
  3. [C#] Clic Droit dans un DataGrid
    Par papouAlain dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2006, 12h02
  4. Réponses: 2
    Dernier message: 09/05/2003, 17h41
  5. Evènement sur clic droit !?
    Par soccersoft dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2002, 21h39

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