Gridview : insertion de bouton [Résolu]

lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 7 janv. 2009 à 11:39 - Dernière réponse : Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention
- 9 janv. 2009 à 13:21
Bonjour,

Je travail sur un projet c# dans lequel j'alimente mon gridview via une procédure stockée. Il faut que j'ajoute une colonne comportant sur chaque ligne un icône revoyant sur un site. Savez-vous comment je pourrais ajouter cette colonne avec les icône/bouton?

L'adresse reçoit des paramètres contenue dans le gridview comment récupérer les paramètres pour les réatribuer au lien qui sera créé?

Merci d'avance.
Afficher la suite 

12 réponses

Répondre au sujet
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 7 janv. 2009 à 13:11
+3
Utile
Bonjour,

Dans la création de ton gridview rajoute une colonne de type ButtonField. Et dans ton code tu programmes le fait que lorsque l'utilisateur clique sur le bouton il ira sur le site voulu.

Autre solution qui me viens a l'esprit, tu crée une colonne HyperLinkField et avec les propriétés dans Données tu pourras faire la navigation (DataNavigateUrlFormatString). Par contre je ne sais pas comment mettre un icône à la place d'un texte mais nul doute que ca doit être possible.

Voila j'espère t'avoir aider, bonne continuation.

Ben.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Rhend
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 7 janv. 2009 à 15:52
+3
Utile
Re,


Es-tu sur d'avoir bien remplie les propriétés d'apparence lorsque tu as crée une colonne de type ButtonField ? (ButtunType, HeaderText et Text)


Et pour le code je n'arrive pas a retrouver le projet, surveille le topic je mettrais une autre réponse si jamais je retrouve le code :)


 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Rhend
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 8 janv. 2009 à 17:54
+3
Utile
Salut Auré,

J'ai enfin pu retrouver ce fameux code, le voila (c'est une partie, juste celle qui t'interesse)

///

<summary>

/// Lorsque l'utilisateur clique sur une des cellules du GridView :

/// - on vérifie qu'il n'a pas cliqué sur l'entête (e.RowIndex != -1)

/// - on vérifie qu'il a bien cliqué sur le bouton Modifier (e.ColumnIndex == 2)

private

void dgvClients_CellContentClick(object sender, DataGridViewCellEventArgs e){

if ((e.ColumnIndex == 2) && (e.RowIndex != -1)){
voila j'espère que cela suffira à t'aider sinon bah j'essayerai de t'expliquer mieux :)

Ben.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Rhend
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 9 janv. 2009 à 10:18
+3
Utile
Salut Auré,

Alors concernant le fait de récupérer 2 données sur le DGV :

int nocli =
Int16.Parse(dgvClients[0, e.RowIndex].Value.ToString());
le dgvClients c'est le nom de mon gridview
le 0 signifie la cellule choisie et le e.Rowindex signifie que par rapport a l'évenement choisie (içi e) on prend en compte la ligne (row)

Voilà avec ca tu devrais t'en sortir :)

Pour ce qui est du lien j'ai qu'une seul solution en tête et qui pourrais éventuellement marcher si tu es en WebForm

Si l'utilisateur clic sur le boutton voulu, Alors
   Server.Tranfert(http://www.MetTonLien.CodeSource);

Voila voila ;)
Ben.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Rhend
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 9 janv. 2009 à 11:38
+3
Utile
Bah vi avec le e.Rowindex :P
donc toi ca ferai

string a = grdevt[<la cellule de la ligne voulu>,e.RowIndex].Value.ToString();


Sachant qu'il faut bien que tu te met dans l'évènement de ton GV :

CellContentClick
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Rhend
lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 7 janv. 2009 à 15:29
0
Utile
Bonjour,

Merci beaucoup pour tes deux solutions.
J'ai essayé la première : ma colonne s'est bien créé mais il n'y a aucun bouton qui s'affiche !
Je vais essayer ta deuxième solution.
Aurais-tu un exemple de code pour la colonne de type buttonField ?

Encore merci

Auré.
Commenter la réponse de lylyboop
lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 7 janv. 2009 à 16:16
0
Utile
Re,

Je te remercie beaucoup pour ton aide
Ma propriété buttunType était mal définit, mainteant tout s'affiche comme voulue ^^
Ta deuxième solution de créer une colonne HyperLinkField marche aussi très bien mais plus compliqué car il faut ensuite remplacer le lien par une image !

Encore merci pour tout !!

Auré.
Commenter la réponse de lylyboop
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 7 janv. 2009 à 16:23
0
Utile
Ravi d'avoir pu t'aider ;-)

Ben.
Commenter la réponse de Rhend
lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 9 janv. 2009 à 09:25
0
Utile
Salut Ben,

Je te remercie pour ton aide, je n'avais pas penser à faire se que tu m'as passé !
Mais j'ai un petit souci : pour la colonne de type ButtonField je n'ai pas trouvé la propriété dans laquelle il faut ajouter le lien !
De même sais-tu comment je peux récupérer une donnée du gridview?
Pour chaque lien en fonction de la ligne je doit récupérer 2 données aurais-tu une idée?

Merci encore

Auré.
Commenter la réponse de lylyboop
lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 9 janv. 2009 à 11:10
0
Utile
Re,

Merci pour tes réponses.
Moi j'avais fait ça :
              string a = grdEvt.Columns[12].ToString();

Mais je récupère l'en-tête de ma colonne, comment est-ce que je pourrai parcourir les lignes ?
Une idée?!!

Auré.
Commenter la réponse de lylyboop
lylyboop 19 Messages postés mardi 6 janvier 2009Date d'inscription 27 mai 2009 Dernière intervention - 9 janv. 2009 à 12:19
0
Utile
D'accord c'est bon, ça marche.

Mille merci à toi.

@++
Auré.
Commenter la réponse de lylyboop
Rhend 43 Messages postés lundi 20 octobre 2008Date d'inscription 14 juin 2009 Dernière intervention - 9 janv. 2009 à 13:21
0
Utile
Au plaisir !
Commenter la réponse de Rhend

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.