OVH Cloud OVH Cloud

recuperer valeur d'un controle genere dynamiquement

3 réponses
Avatar
herve
Bonjour,

J'ai un ASCX (ucRecherche) dans lequel je charge dans un placeHolder
lui-même dans le prerender
Dim _RechCritComp As New PlaceHolder
Dim RechUrlCbl As New CheckBox
RechUrlCbl.ID = "RechUrlCbl"
RechUrlCbl.Text = "url"
_RechCritComp.Controls.Add(RechUrlCbl)
...

Résultat du rendu Htm:
<input id="ucRecherche_RechUrlCbl" name="ucRecherche:RechUrlCbl"
type="checkbox"><label for="ucRecherche_RechUrlCbl">url</label>

Quand je clique sur un bouton, je veux mémoriser si c'était coché ou non
Sub BtnRech_ServerClick(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnRech.ServerClick
If Page.IsValid Then
Dim RechUrl As New CheckBox
RechUrl =
CType(Page.FindControl("ucRecherche:RechUrlCbl"), CheckBox)
If RechUrl Is Nothing = False Then

Et bien RechUrl est toujours Nothing que je coche ou non !?

Celà devrait fonctionner, non?
hervé

3 réponses

Avatar
Cédric Dardenne
Salut Hervé,

As-tu essayé de faire juste CType(Page.FindControl("RechUrlCbl"), CheckBox)
sans le "ucRecherche:" ?

Cédric

herve wrote:
Bonjour,

J'ai un ASCX (ucRecherche) dans lequel je charge dans un placeHolder
lui-même dans le prerender
Dim _RechCritComp As New PlaceHolder
Dim RechUrlCbl As New CheckBox
RechUrlCbl.ID = "RechUrlCbl"
RechUrlCbl.Text = "url"
_RechCritComp.Controls.Add(RechUrlCbl)
...

Résultat du rendu Htm:
<input id="ucRecherche_RechUrlCbl" name="ucRecherche:RechUrlCbl"
type="checkbox"><label for="ucRecherche_RechUrlCbl">url</label>

Quand je clique sur un bouton, je veux mémoriser si c'était coché ou
non Sub BtnRech_ServerClick(ByVal sender As System.Object,
ByVal e
As System.EventArgs) Handles BtnRech.ServerClick
If Page.IsValid Then
Dim RechUrl As New CheckBox
RechUrl > CType(Page.FindControl("ucRecherche:RechUrlCbl"), CheckBox)
If RechUrl Is Nothing = False Then

Et bien RechUrl est toujours Nothing que je coche ou non !?

Celà devrait fonctionner, non?
hervé



--
----------------------------------------------------------------------------
---------
Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
-- Rich Cook
Avatar
herve
Cédric Dardenne a écrit :

Salut Hervé,

As-tu essayé de faire juste CType(Page.FindControl("RechUrlCbl"), CheckBox)
sans le "ucRecherche:" ?

Cédric



Salut,
Oui j'avai essayé et celà ne fonctionnait pas non plus.
Je viens de déplacer le chargement dynamique de mon placeholder dans le
Page_Init au lieu du Page_PreRender et celà fonctionne maintenant.
J'ai toujours du mal à comprendre cet enchainement des évenements, mais
celà cloche parfois à cause de celà
hervé
Avatar
Cédric Dardenne
En gros, nous, développeurs, voyons 4 événements : init, load, prerender et
render.

Sans rentrer dans les détails, y en a un bon paquet d'autres entre le load
et prerender qui récupèrent les données du viewstate, et gèrent les
événements qui ont déclenché le postback.

Si ton controle est chargé dans le prérender, le moteur a déjà essayer de
lier les événements qui ont déclenché le postback, et c'est donc trop tard,
ton controle ne reçoit pas l'événement.

Tu peux donc placer ta création dans le page_load, ça devrait être bon
aussi.

Hope This Helps,

Cédric


--
Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
-- Rich Cook


herve wrote:
Cédric Dardenne a écrit :

Salut Hervé,

As-tu essayé de faire juste CType(Page.FindControl("RechUrlCbl"),
CheckBox) sans le "ucRecherche:" ?

Cédric



Salut,
Oui j'avai essayé et celà ne fonctionnait pas non plus.
Je viens de déplacer le chargement dynamique de mon placeholder dans le
Page_Init au lieu du Page_PreRender et celà fonctionne maintenant.
J'ai toujours du mal à comprendre cet enchainement des évenements, mais
celà cloche parfois à cause de celà
hervé