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

ASP.NET Discussion :

[C#] Comment intercepter les événements des contrôles inclus dans un DataGrid ?


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [C#] Comment intercepter les événements des contrôles inclus dans un DataGrid ?
    Bonjour,

    Je n'arrive pas à intercepter les evenements des controles inclus dans un DataGrid qui est lui meme inclus dans une des colonnes d'un DataGrid.
    Seul les evenement propre au DG sont intercepté : ItemDataCreate,Databound ...

    J'ai essayé de remplacer le DG inclus par un repeater mais idem.
    D'aprés la doc, je devrait au moins intercepter les evenements avec le ItemCommand (propagation de l'evenement vers le conteneur) mais rien.

    Quelqu'un aurai t'il une piste ?

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    Comment as-tu abonné tes contrôles à tes méthodes ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    J'ai abonné mes methodes dans le ItemCreated du premier DG :

    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
    
    privatevoid DG_Fonction_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
    {
    DataGrid DG_Alias = (DataGrid)e.Item.FindControl("DG_Alias");
    DG_Alias.ItemCreated += new DataGridItemEventHandler(DG_Alias_ItemCreated);
    DG_Alias.EditCommand += new DataGridCommandEventHandler(DG_Alias_EditCommand);
    DG_Alias.ItemCommand += new DataGridCommandEventHandler(DG_Alias_ItemCommand);
    DG_Alias.ItemDataBound += new DataGridItemEventHandler(DG_Alias_ItemDataBound);
    Repeater R_Alias = (Repeater)e.Item.FindControl("R_Alias");
    R_Alias.ItemCreated += new RepeaterItemEventHandler(R_Alias_ItemCreated);
    R_Alias.ItemDataBound += new RepeaterItemEventHandler(R_Alias_ItemDataBound);
    R_Alias.ItemCommand += new RepeaterCommandEventHandler(R_Alias_ItemCommand);
    }
    }
    
    les evenements DG_Alias.ItemCreated et DG_Alias.ItemDataBound sont bien intercepté lors du DataBound (fait lorsque IsPostback est faux) mais DG_Alias.ItemCommand et DG_Alias.EditCommand
    ne sont pas intercepté lors du PostBack.
    J'ai bien verifié que les lignes ci dessus sont passé lors du PostBack.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    Quels sont les contrôles dont tu tentes d'intercepter les évènements ?

    Le editCommand ne fonctionne que pour les boutons de la colonne d'édition du datagrid, et le itemCommand ne fonctionne que si tu initialise la propriété Command de tes boutons, hyperlink, etc...

    Du moins si je ne me trompes c'est comme ça que je faisais avec le datagrid 1.1

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Au départ, j'ai une colonne edition dont je dois intercepté l'event. Comme cela ne fonctionnait pas, j'ai rajouter un Button pour voir. (Je vais réessayer en initialisant la propriété commande (ce que je ne savais pas obligatoire))

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    J'ai initialisé les propriété CommandName et CommandArgument mais toujours pas d'interception.
    J'ai placé un autre boutton au niveau du premier DG : celui-ci est intercepté (avec ou sans CommandName et CommandArgument).

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    En fait j'ai dit une connerie pour le command, ce n'est pas obligatoire, mais ça te permet de tester quel bouton t'envoie l'info (ou avec quelle commande)...

    Bon par contre, je ne comprends pas bien ton pb du coup...

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    Excuse moi, je n'avais pas bien compris ce que tu cherchais à faire... désolé...

    Je pense que dans l'onglet HTML de VS tu devrais pouvoir rajouter un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:DataGrid ID="DataGrid2" runat="server" OnItemCommand="MaMethode">
    Sur la ligne de déclaration de ton deuxième datagrid, et bien sûr mettre le bon nom de méthode... OnItemCommand, OnEditCommand... tout ça... là, je pense que ça marchera...

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Merci
    Génial, c'était ça qui manquait.

    Merci

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 60
    Points : 57
    Points
    57
    Par défaut
    De rien

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/07/2009, 08h12
  2. [PHP] Comment intercepter les WARNING ?
    Par spiloack dans le forum SQL
    Réponses: 0
    Dernier message: 03/09/2007, 11h08
  3. Réponses: 4
    Dernier message: 18/01/2006, 14h49

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