Gridview : insertion de bouton

Résolu
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009 - 7 janv. 2009 à 11:39
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009 - 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.

12 réponses

Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
7 janv. 2009 à 13:11
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.
3
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
7 janv. 2009 à 15:52
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 :)


 
3
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
8 janv. 2009 à 17:54
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.
3
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
9 janv. 2009 à 10:18
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.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
9 janv. 2009 à 11:38
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
3
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009
7 janv. 2009 à 15:29
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é.
0
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009
7 janv. 2009 à 16:16
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é.
0
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
7 janv. 2009 à 16:23
Ravi d'avoir pu t'aider ;-)

Ben.
0
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009
9 janv. 2009 à 09:25
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é.
0
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009
9 janv. 2009 à 11:10
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é.
0
lylyboop Messages postés 19 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 27 mai 2009
9 janv. 2009 à 12:19
D'accord c'est bon, ça marche.

Mille merci à toi.

@++
Auré.
0
Rhend Messages postés 43 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 14 juin 2009
9 janv. 2009 à 13:21
Au plaisir !
0
Rejoignez-nous