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

Windows Forms Discussion :

[C#] Remplacer les boutons d'un DataGrid par une image


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut [C#] Remplacer les boutons d'un DataGrid par une image
    Bonjour,

    J'ai un datagrid avec les 4 premiers boutons créés avec le générateur de propriété (Colonnes de boutons), attention ce ne sont pas des colonnes modèles !. Je souhaite remplacer ces boutons par des images afin que cela soit un peu plus sympa. Ces images seront cliquables pour lancer une action.

    Comment le faire ? J'essaye depuis 2 jours mais sans succès.

    Merci pour votre aide.

    Cordialement

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    et sur les boutons tu peux pas mettre ton image en fond ?

    @+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    ButtonColumn de type Linkbutton, puis dans le ItemDatabound change le text du linkButton pour mettre une balise IMG avec la source de ton image

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci à vous deux.

    Mais comment mettre une balise IMG au texte de mon linkbutton.
    Il va me le prendre comme une chaine de caractère normale ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    sur le ItemDataBound

    Exemple pas forcément syntaxiquement bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LinkButton lb = (LinkButton)e.item.Controls[0]; 
     
    lb.text = "<img src='toto.gif'>";

  6. #6
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    huumm pas mal cette soluce. Sera ajouté à la FAQ (une soluce avec ItemTemplate était prévue...)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Oui c'est la soluce la plus simple et rapide a mettre en oeuvre que j'ai pu trouvé. Certes c'est bidouille mais ca reste très lisible quand meme.

  8. #8
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    La soluce d'ItemTemplate est fort semblable en fait...

  9. #9
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci pour l'info, mais cela ne fonctionne pas.

    En fait j'ai un problème dans le cast (LinkButton) e.item.Controls[0]
    "le cast spécifié n'est pas valide".

    Je suis pourtant bien dans ItemDataBound.

    Merci pour votre aide !

  10. #10
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Et tu essayes de mettre cela dans quoi?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    dans le ItemDataBound faut déja regarder que e.Item.Itemindex > -1

    Car il va sur la ligne qui constitue le Header de la DataGrid en fait

    Après j'ai dis que je n'étais pas totalement sur de la syntaxe j'ai rien sous les yeux pour checker ca

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Voila le code que j'ai testé et qui fonctionne

    ASPX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 24px" runat="server"
    				Width="632px">
    				<Columns>
    					<asp:ButtonColumn Text="Sélectionner" CommandName="Select"></asp:ButtonColumn>
    					<asp:ButtonColumn Text="Sélectionner" CommandName="Select"></asp:ButtonColumn>
    					<asp:ButtonColumn Text="Sélectionner" CommandName="Select"></asp:ButtonColumn>
    					<asp:ButtonColumn Text="Sélectionner" CommandName="Select"></asp:ButtonColumn>
    				</Columns>
    			</asp:DataGrid>
    C#
    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
     
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
     
    		private void Page_Load(object sender, System.EventArgs e)
    		{
    			// Placer ici le code utilisateur pour initialiser la page
    			ArrayList ar = new ArrayList();
    			ar.Add("toto");
    			ar.Add("titi");
    			DataGrid1.ItemDataBound+=new DataGridItemEventHandler(DataGrid1_ItemDataBound);
    			DataGrid1.DataSource = ar;
    			DataGrid1.DataBind();
     
    		}
     
    		#region Code généré par le Concepteur Web Form
    		override protected void OnInit(EventArgs e)
    		{
    			//
    			// CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET.
    			//
    			InitializeComponent();
    			base.OnInit(e);
    		}
     
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		private void InitializeComponent()
    		{    
    			this.Load += new System.EventHandler(this.Page_Load);
     
    		}
    		#endregion
     
    		private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    		{
    			LinkButton lb;
    			if (e.Item.ItemIndex>-1)
    			{
    				lb = (LinkButton)e.Item.Cells[0].Controls[0];
    				lb.Text = "<img src='toto.gif'";
    				lb = (LinkButton)e.Item.Cells[1].Controls[0];
    				lb.Text = "<img src='toto.gif'";
    				lb = (LinkButton)e.Item.Cells[2].Controls[0];
    				lb.Text = "<img src='toto.gif'";
    				lb = (LinkButton)e.Item.Cells[3].Controls[0];
    				lb.Text = "<img src='toto.gif'";
     
    			}
    		}

  13. #13
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    1) J'essaye de mettre l'image en remplacement d'un bouton d'une colonne bouton dans un datagrid.
    2) je vérifie bien l'index qui soit !=-1
    3) J'ai essayé avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    e.Item.Cells[1].Text = "<img src='monimage.gif' />";
    Cela m'affiche bien mon image mais si je clique dessus rien ne se passe !

    Si cela peut faire avancer le shmilililili...blic

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Ce n'est pas le e.item.cells qu'il faut utiliser mais le Text du LinkButton à modifier mate mon exemple.

    En cliquant sur l'image il passe bien sur le ItemCommand (Si tu crées l'event associé )

  15. #15
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    OK c'est tout Goood !!!

    Merci Soab, ça marche très bien. Je vais pouvoir avancer.
    Merci aux autres aussi.

    Bravo pour votre boulot c'est vraiment agréable !

    Bonne journée !

    PS:Maintenant il va falloir que je trouve de belles images

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 310
    Points : 157
    Points
    157
    Par défaut
    Maintenant il va surtout falloir mettre [Résolu] Clique le ptit bouton en bas

  17. #17
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par PascalL
    Bravo pour votre boulot c'est vraiment agréable !
    Pour le faciliter, penses au tag Résolu

    Citation Envoyé par PascalL
    Maintenant il va falloir que je trouve de belles images
    http://www.developpez.net/forums/viewtopic.php?t=317585

  18. #18
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    C'est fait !

    Merci pour l'info.

    A+

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

Discussions similaires

  1. [AC-2010] Remplacer faceid d'un menu contextuel par une image perso
    Par Tierisa dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/08/2014, 08h41
  2. [CS3] remplacer le bouton d'un formulaire par une image
    Par HAbroc dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 21/09/2009, 23h40
  3. remplacer les boutons du formulaire par une image
    Par HwRZxLc4 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 30/08/2007, 21h00
  4. remplacer les boutons par des images
    Par sotfage dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 18/06/2007, 17h41

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