Gridview : insertion de bouton [Résolu]

Signaler
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009
-
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009
-
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

Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

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.
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

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 :)


 
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

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.
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

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.
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

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
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

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é.
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

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é.
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

Ravi d'avoir pu t'aider ;-)

Ben.
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

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é.
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

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é.
Messages postés
19
Date d'inscription
mardi 6 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

D'accord c'est bon, ça marche.

Mille merci à toi.

@++
Auré.
Messages postés
43
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
14 juin 2009

Au plaisir !