Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each RepeaterIt In repeater1.Items Dim item as new monobjet("","") item = RepeaterIt .DataItem ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For Each RepeaterIt In repeater1.Items Dim item as new monobjet("","") item = RepeaterIt .DataItem ....
oui excuse moi je voulais mettre ca. mais il me dit que l'objet n'est pas instancié.
je procede pourtant de la meme maniere que au dessus mais cette fois je narrive pas a acceder a mes objet champ_textbox2 et champ_label2
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
Il te fait une erreur où ??
Sinon, tu as oublié de caster le retour de FindControl() en textbox ou en checkbox selon le cas. (FindControl() te retourne un type générique Control)
il mindique une erreur sur le select item.champ_textbox2, pour lui , il nest pas definie ( comme pour champ_label2 du reste )
j'ai essayé de rajouté un test sur le type d'élement ( on verifie que l'on n'est ni dans le footer ni dans le header mais ca ne change rien
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
Pardon, il faut aussi caster le retour de RepeatIt.DataItem en MonObjet
merci, jai tou caster, mais j'obtien la meme erreur
Object reference not set to an instance of an object. select item.champ_textbox2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 For Each RepeaterIt In repeater1.Items if (RepeaterIt.ItemType = ListItemType.Item or RepeaterIt.ItemType = ListItemType.AlternatingItem) then Dim item as new monobjet("","") item = CType(RepeaterIt.DataItem, Monobjet) select item.champ_textbox2 'select tampon case "System.String" monTxtResultat = CType(RepeaterIt.FindControl("champ_textbox"), textbox) case "System.Boolean" monTxtcheckbox = CType(RepeaterIt.FindControl("champ_checkbox"), checkbox) case "System.Double" monTxtResultat = CType(RepeaterIt.FindControl("champ_textbox"), textbox) case "System.int32" monTxtResultat = CType(RepeaterIt.FindControl("champ_textbox"), textbox) end select end if
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
ca ne pourrais pas venir du fait que la jessaye dy acceder apres un pseudo submit, et que du coup les champ ne sont plus disponible ?
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
C'est qu'il a pas gardé dans le ViewState les données liées à ton repeater.
Dans ce cas, tu peux faire ça (C#) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 foreach(RepeaterItem item in Repeater1.items) { if (item .ItemType == ListItemType.Item || item .ItemType == ListItemType.AlternatingItem) { Control txtBox_tmp = item.FindControl("champ_textbox"); Control ckBox_tmp = item.FindControl("champ_checkbox"); if (txtBox_tmp != nul) // Cas ou c'est une checkBoxà { TextBox txtBox = txtBox_tmp as TextBox; } if (ckBox !=eckBox ckBox = ckBox_tmp as CheckBox; } null) // Cas où c'est une checkbox { Ch ... } }
Qu'appel-tu un "pseudo submit"Envoyé par dyree
oui mais non
car mes Deux checkbox et textbox sont declaré donc ces tests seront toujours vrai non ?
en revanche je peux tester leur visibilité non ?
j'avoue c'est pas terrible mais si ca marche ...
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
Ben joue sur la visibilité alors...
Mais sinon, le ViewState est-il bien activé sur ta page / ton controle ??
oui il est activé sur la page ( dans les propriété de webmatrix ) et sur le repeater dans la déclaration.
car marche bien pour la visibilité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 if (RepeaterIt.ItemType = ListItemType.Item or RepeaterIt.ItemType = ListItemType.AlternatingItem) then if RepeaterIt.FindControl("champ_textbox").Visible = true then monTxtResultat = CType(RepeaterIt.FindControl("champ_textbox"), textbox) myDataRow(tampon) = monTxtResultat.Text end if if RepeaterIt.FindControl("champ_checkbox").Visible = true then monTxtcheckbox = CType(RepeaterIt.FindControl("champ_checkbox"), checkbox) if moncheckbox.checked = true myDataRow(tampon) = "true" else myDataRow(tampon) = "false" end if end if
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager