Datagrid + checboxes + propagation d'evenements...

Signaler
Messages postés
2
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
28 août 2005
-
Messages postés
2
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
28 août 2005
-
Bonjour,



La situation :



C#, Asp.net



Une datagrid contenant 2 colonnes modèles.

Les colonnes modèles contiennent chacune 2 checkboxes (l'une correspondant à 'read', l'autre correspondant à 'write').

J'aimerai que lorsque je coche une checkbox de la 1ere colonne modele,
la checkbox correspondante dans la 2eme colonne modele se coche
automatiquement.



Ce que j'ai fait :

1)code HTML d'un checkbox





2)Dans la methode ItemDataBound de ma datagrid :

CheckBox cbAllCR = ((CheckBox)e.Item.FindControl("cbAllClientsR"));

cbAllCR.Checked = (bool)row["TOTO"];

cbAllCR.CheckedChanged += new EventHandler(cbAllCR_CheckedChanged);



3) une nouvelle methode appelee

private void cbAllCR_CheckedChanged(object sender, EventArgs e)



Le probleme :

Pas de propagation de cet evenement lorsque je coche la checkbox... je ne passe jamais dans la methode cbAllCR_CheckedChanged



J'ai auparavent utiliser des boutons qui etaient les enfants dans la
datagrid, le champs CommandName m'a permis de recuperer le clic sur ce
bouton... mais avec les checkboxes ?!?





Merci de vos reponses

3 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
tu devrais plutot t'adresser au forum http://www.aspfr.com


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bonjour,

La méthode ItemCommand de ton datagrid va intercepter l'evenement de ton checkbox si tu as mis l'attribut command="blabla" dans la balise de ton checkbox de ta page ASPX.

Pour savoir de quelle commande il s'agit tu fais :

Datagrid1_ItemCommand(....)
{
switch (e.commandname.toupper() )
{
case "blabla" :
// écris le code de cochage de l'autre checkbox
break ;
}
}

Je ne me souviens plus de la syntaxe exacte mais dans mes lointains souvennirs ca ressemble a cela.
Messages postés
2
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
28 août 2005

Merci pour ta reponse.

Mais le probleme venait du fait que l'abonnement d'un controle a un evenement dans le cas de la datagrid doit se faire dans la methode ItemCreated et pas dans le ItemDataBound.

J'avais deja specifie le commandName.