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#] bouton dans un datagrid comment çà marche ?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut [C#] bouton dans un datagrid comment çà marche ?
    Bonjour,

    je cherche à afficher un datagrid dans une page ASPX. Jusque là aucun problème.
    Je voudrais maintenant ajouter un bouton pour chaque ligne du datagrid qui ouvre une popup et permet à l'utilisateur de consulter les détails de l'enregistrement.
    Mais la , c'est la catastrophe. Mon bouton est contenu dans une colonne template et je n'arrive pas à récupérer l'evenement de clic sur ce boutons.

    Damned !

    est-ce que l'evenement sur un bouton d'une colonne template peut transmettre un ID d'enregistrement et si oui, quelqu'un pourrait-il m'orienter vers une solution. Parce que là , je sèche

    merci à vous

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    j'ai testé 2 type d'interaction :

    - la colonne template
    - la colonne bouton

    la colonne template :
    elle contient un imageButton avec le commandName "View_next"

    la colonne bouton :
    elle contient un bouton avec le commandName "truc"

    le handler de l'évenement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.DGNext.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DGNext_ItemCommand);
    la fonction liée à l'évennement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void DGNext_ItemCommand(object sender, DataGridCommandEventArgs e)
    		{
    			Label1.Text="r";
    			if (e.CommandName=="view_next")
    			{
    				Label1.Text="template " + e.Item.Cells[1].ToString(); //cells[1] contient l'ID				
    			}
    			if (e.CommandName=="truc")
    			{
    				Label1.Text="bouton" + e.Item.Cells[1].ToString(); //cells[1] contient l'ID
    			}
    			DGNext.DataBind();
    		}
    mais rien ne se passe. la page se raffraichi mais le label1 que je met à jour ne change pas.

    ai-je raté une marche ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    le problème venait de mon handler:

    dans ce cas de figure il faut passer par une instanciation dynamique de handler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //instanciation dynamique du handler sur le imagebouton
    private void DGNext_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    		{
    			//chercher le controle et y associer un handler
    			if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem)
    			{
    				myValue = e.Item.Cells[0].Text; //mon ID
    				((System.Web.UI.WebControls.ImageButton)(e.Item.FindControl("ImageButton2"))).Click +=new ImageClickEventHandler(histoMAJ_Click);
    			}
     
    		}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //action du image button
    private void histoMAJ_Click(object sender, ImageClickEventArgs e)
    		{
    			Label1.Text="bouton " + myValue;
    		}
    et voila , un clic sur bouton avec paramètre.

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

Discussions similaires

  1. mvvm: Command sur bouton dans un datagrid ne fonctionne pas
    Par Golzinne dans le forum Silverlight
    Réponses: 6
    Dernier message: 11/11/2011, 15h45
  2. ajouter des boutons dans un datagrid
    Par scudhit dans le forum Flex
    Réponses: 18
    Dernier message: 06/09/2010, 13h54
  3. Selection sur bouton dans un Datagrid
    Par chrisdot dans le forum Silverlight
    Réponses: 5
    Dernier message: 30/03/2010, 10h11
  4. [Dojo] Colonne avec boutons dans un datagrid
    Par ghost55 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 30/04/2009, 15h29
  5. [C#] Modifier le text des boutons dans un datagrid
    Par Le-Cortex dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/01/2006, 10h17

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