mhassine
Messages postés12Date d'inscriptionvendredi 26 décembre 2003StatutMembreDernière intervention 2 septembre 2005
-
17 août 2005 à 14:09
benjiiim94
Messages postés96Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention13 juillet 2007
-
18 août 2005 à 17:00
bonjour,
j'ai une feuille dans laquelle se trouve un datagrid qui contient des articles d'un catalogue.
Je voudrais que dès que je clique sur le bouton modifier d'une ligne du datagrid, les champs de données soient extraits du datagrid et mis dans des textbox et des label, afin d'afficher plus d'informations sur l 'article.
Je n'ai pas trouvé la syntaxe pour accéder à une certaine cellule de la ligne courante d'un datagrid ?
La connaissez vous?
Merci d'avance.
mhassine
Messages postés12Date d'inscriptionvendredi 26 décembre 2003StatutMembreDernière intervention 2 septembre 2005 18 août 2005 à 16:54
Si! on peut accéder à des cellules. Avec beaucoup de patience et de tatonnement, j'ai enfin réussi à y accéder d'une facon très simple:
Private
Sub DataGrid1_ItemCommand1(
ByVal source
As
Object,
ByVal e
As System.Web.UI.WebControls.DataGridCommandEventArgs)
Handles DataGrid1.ItemCommand
Dim str
As
String
'On positionne d'abord le "curseur"
DataGrid1.DataKeyField = e.Item.ItemIndex
'on accède aux cellules
Str = e.Item.Cells(0).Text
et voila .
Je te remercie quand même énormément pour tes longues réponses , qui ont du te donner beaucoup de mal et de temps.
benjiiim94
Messages postés96Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention13 juillet 2007 18 août 2005 à 09:41
Salut,
Lorsque tu cliques sur le bouton modifier, on est dacord que tu déclenches l'évenement ItemCommand de ton datagrid.
Dans cet événement, tu peus récupérer tous les controles que tu
souhaites gràce aux paramètres passés par default à l'événement (plus
particulièrement le "e")
Tu dois donc utiliser cette syntaxe : e.Item.FindControl("xxxxx") avec xxxxx le nom de ton controle.
Mais avant de te servir de ce controle, tu dois d'abord le caster pour pouvoir utiliser ces propriétés spécifiques :
Par exemple, en C#, si ton controle est une TextBox dans ton datagrid :
((TextBox)e.Item.FindControl("xxxxxx")), tu peus ainsi utiliser la
propriété Text par exemple
benjiiim94
Messages postés96Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention13 juillet 2007 18 août 2005 à 09:42
Petite précision, tu peus avec cette méthode accéder à des controles,
pas à proprement dis à des cellules, si tu veus récupérer le contenu
d'une cellule, il doit donc y avoir un controle dedans (un label par
exemple), pour cela, tu dois concevoir ton datagrid en mode template.
mhassine
Messages postés12Date d'inscriptionvendredi 26 décembre 2003StatutMembreDernière intervention 2 septembre 2005 18 août 2005 à 11:41
Salut,
merci de me répondre .
La syntaxe e.Item.FindControl("xxxxx") ne fonctionne pas toute seule . Peux tu me la donner complète ?
Comment déclare t on un datagrid en mode template ?
Comment pourrait on créer un label dans un datagrid ? le nombre de lignes est défini par le nombre de lignes dans la table . si tu veux bien m 'expliquer un peu tout ca stp .
A bientot.
Vous n’avez pas trouvé la réponse que vous recherchez ?
benjiiim94
Messages postés96Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention13 juillet 2007 18 août 2005 à 12:31
Je t'ai di que tu dois caster le controle pour pouvoir utiliser ces propriétés, comme ceci en C# : ((TextBox)e.Item.FindControl("xxxxxx")), et comme ceci en VB : CType(e.Item.Findcontrol("txtcat"),textbox)