Problème avec un checkbox et l'évènement CheckedChanged

cs_aurelie Messages postés 87 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 octobre 2006 - 16 avril 2004 à 17:25
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016 - 30 août 2005 à 12:06
Je crée dynamiquement des checkbox qui n'ont pas le même nom et je voudrais affecter un évènement qui lorsque je coche ou décoche le checkbox me fasse une opération. Je croyais que ça marchait avec checkchanged mais ça ne passe pas dedans. Voici mon code :

CheckBox chadmin = null;
for(int ind=0;ind<5;ind++)
{
chadmin = new CheckBox();
chadmin.ID = "ch_"+i; chadmin.CheckedChanged += new EventHandler(this.chad_CheckedChanged); chadmin.Checked = consult;
chadmin.Text = "Consulter";
Panel.Controls.Add(chadmin);
}

public void CheckConsultLib_CheckedChanged(Object sender, EventArgs e)
{
Response.Write("essai");
}

Mais quand je coche ou décoche, y a rien qui se passe. Alors si vous pouviez m'aider, ça serait super sympa.
Merci d'avance.
Aurélie

9 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
16 avril 2004 à 18:19
Dans la page aspx tu dois avoir :
<asp:checkbox il lui faut rajouter un attribut autopostback="true" car par défaut (et heureusement) il n'y a pas de retour serveur qd on touche à un checkbox

@+

Cyril (Alias Jesusonline)
0
cs_aurelie Messages postés 87 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 octobre 2006
19 avril 2004 à 07:56
Par contre, il n'y aurait pas un autre système qui me permettre de faire une action sur la page quand je coche ou décoche mon checkbox sans reloader la page encours?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
19 avril 2004 à 18:22
si mais la tu ne peux pas passer par asp.net, mais il faut que tu passes par javascript

sinon tu peux aussi faire ouvrir une popup via javascript, et la page de la popup est une page aspx et tu peux executer le code la dedans
mais cette methode est pas tres propre

Cyril (Alias Jesusonline)
0
lolhangman Messages postés 10 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 juillet 2017
5 août 2005 à 10:49
Bonjours, j'ai moi aussi un probleme avec une checkbox ajoutée dynamiquement, tout marche sauf que lorsque je decoche la checkbox il ne se passe rien....

voici le code de la procedure d'event


private
void CheckBox_CheckedChanged(
object sender, System.EventArgs e)


{



int i = System.Int32.Parse(((CheckBox) sender).ID.Substring(5,1));



if ( ((CheckBox) sender).Checked)


{


numAClore.Add(ResultatRecherches.Items[i].Cells[0].Controls[0] );


Quitter.Text += "aaa ";
}



else


{


numAClore.Remove(ResultatRecherches.Items[i].Cells[0].Controls[0]);


Quitter.Text += "aab ";


}



for (
int j=0; j<numAClore.Count; j++)


Quitter.Text += ( (Label) numAClore[j]).Text ;

Ce code fonctionne lorsuqe je coche mais pas lorsque je decoche

En fait j'ai ajouté dans un datagrid une check box par ligne et la je recupere le numero de la ligne i (je l ai mis a la fin de l'id de la checkbox a la creation) puis je teste.
0

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

Posez votre question
lolhangman Messages postés 10 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 juillet 2017
5 août 2005 à 11:19
j'ai oublié de preciser que je cré mon datagrid contenant les checkbox dans le page load
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
29 août 2005 à 13:22
Quelqu'un serait me traduire ça de façon correct pour le vb.net
j'ai essayer ce code mais il me jette avec l'insulte suivante :
Détails de l'exception: System.FormatException: Le format de la chaîne d'entrée est incorrect

je suis débutant

origine :
int i = System.Int32.Parse(((CheckBox) sender).ID.Substring(5,1));



vb.net :
dim i as integer
i = System.Int32.Parse(MyChk.ClientID.Substring(5, 1))

ça c'est juste pour récupéer l'item de ma ligne

RodCobalt22, vous salue bien ;-)
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
29 août 2005 à 13:28
complément avec le i = System.int32.parse(MyChk.ID.substring(5,1))
ça ne marche pas non plus

RodCobalt22, vous salue bien ;-)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
29 août 2005 à 13:56
int i = System.Int32.Parse(((CheckBox) sender).ID.Substring(5,1));

dim i as integer = cint((ctype(sender, checkbox).ID.substring(5,1))


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
30 août 2005 à 12:06
merci beaucoup cyril,
J'avais touvé avant mais j'apprécie beaucoup ta réponse.

En revanche, je pense qu'il est nécessaire ( si ce n'est pas déjà fait ) de préciser le principe du substring dans ce contexte.

la méthode évoqué au dessus permet d'obtenir l'identifiant tel qu'il a été rentreé par le concepteur ( utilisateur ici )

En revanche, si vous utilisez à la place de "ID" la propriété "UniqueID", le retour vous fournit
le parent, le controle et son indexation faite par le système, le tout dans une chaine.

Bien sur c'est su bricolage mais libre à vous de régler le substring pour obtenir la chaine désiré et d'effectué un "replace" ( fonction vb ) du ":" par "", ainsi vous obtiendrez le numéro unique qui peux ainsi vous servir d'index pour trouver les autre controle du DGD.

Sauf erreur de ma part bien sur

RodCobalt22, vous salue bien ;-)
0
Rejoignez-nous