Pb de PostBack

Le
Emilie
Bonjour

Sur une page Web je voudrais récupérer l'ID du controle qui est à l'origine
du PostBack,
Avec le code ci-dessous j'ai le message d'erreur : la référence d'objet
n'est pas définie à une instance d'un objet sur la ligne : Dim LeControle As
String

Dans mon page_load :

Dim LeControle As String = Request.Form("_EVENTTARGET").ToString



Mon bouton est créé dynamiquement :

ImbG.CommandName = "Gamme"

AddHandler ImbG.Command, AddressOf ImageButton_Command



Public Sub ImageButton_Command(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.CommandEventArgs)

If IsPostBack Then

Dim ImbG As ImageButton = DirectCast(sender, ImageButton)

Session("IDprod") = Mid(ImbG.ID, 5)

End If

End Sub


Pouvez-vous me dire ce qui est mal codé

Merci pour vos réponses
Emilie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilbert Tordeur
Le #19760491
Émilie,

Ta réponse ne se trouverait-elle pas trois messages plus bas, dans «ASP.NET
: Sur quel bouton a cliqué l'utilisateur ?» ?

Gilbert
Emilie
Le #19760791
Bonjour Gilles

Je n'ai pas ce message?
Peux-tu me dire où

Emilie
"Gilbert Tordeur" news:
Émilie,

Ta réponse ne se trouverait-elle pas trois messages plus bas, dans
«ASP.NET : Sur quel bouton a cliqué l'utilisateur ?» ?

Gilbert



Gilbert Tordeur
Le #19761661
Voici,
Gilbert

================
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert

=================
Bonjour,

Request.Form("__EVENTTARGET") mais généralement on réagit plutôt dans la
procédure évènementielle correspondant au bouton cliqué...

Eventuellement voir :

http://www.generation-nt.com/reponses/postback-entraide-2290911.html#reponse

--
Patrice



"Gilbert Tordeur" groupe de discussion :
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert




====================
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me renvoie
un string vide ou nul. J'ai vérifié en activant la trace, et le nom
__EVENTTARGET n'apparaît pas dans la collection Form. Seuls apparaissent
__VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert

====================
Au temps pour moi, cela dépend du control...

De base, lorsqu'on clique sur un "vrai" bouton, le navigateur renvoie une
valeur avec comme nom l'attribut name du bouton et avec comme valeur
l'attribut value. Tu vois qq chose dans la collection Form ?

Qq chose comme :

Request.form(MyButton.ClientID)<>"" devrait marcher (vérifier également avec
"view source" dans le navigateur que l'attribut name du bouton a bien la
même valeur que son attribut "id").

Si ce n'est toujours pas ok, indique le type de bouton utilisé et je ferais
un test...

--
Patrice


"Gilbert Tordeur" groupe de discussion :
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me renvoie
un string vide ou nul. J'ai vérifié en activant la trace, et le nom
__EVENTTARGET n'apparaît pas dans la collection Form. Seuls apparaissent
__VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert




=================
Patrice.

Un problème réglé. Pour information, ce n'est pas
Request.Form(MyButton.ClientID)<>"", mais
Request.Form(MyButton.UniqueID)<>""

Merci,
Gilbert
Emilie
Le #19762261
Merci Gilles

Avec Dim LeControle As String = Request.Form("ImbG.ClientID").ToString
j'ai toujours le message : la référence d'objet
n'est pas définie à une instance d'un objet

Emilie

"Gilbert Tordeur" news:
Voici,
Gilbert

================ >
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert

================= >
Bonjour,

Request.Form("__EVENTTARGET") mais généralement on réagit plutôt dans la
procédure évènementielle correspondant au bouton cliqué...

Eventuellement voir :

http://www.generation-nt.com/reponses/postback-entraide-2290911.html#reponse

--
Patrice



"Gilbert Tordeur" groupe de discussion :
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert




==================== >
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me renvoie
un string vide ou nul. J'ai vérifié en activant la trace, et le nom
__EVENTTARGET n'apparaît pas dans la collection Form. Seuls apparaissent
__VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert

==================== >
Au temps pour moi, cela dépend du control...

De base, lorsqu'on clique sur un "vrai" bouton, le navigateur renvoie une
valeur avec comme nom l'attribut name du bouton et avec comme valeur
l'attribut value. Tu vois qq chose dans la collection Form ?

Qq chose comme :

Request.form(MyButton.ClientID)<>"" devrait marcher (vérifier également
avec
"view source" dans le navigateur que l'attribut name du bouton a bien la
même valeur que son attribut "id").

Si ce n'est toujours pas ok, indique le type de bouton utilisé et je
ferais
un test...

--
Patrice


"Gilbert Tordeur" groupe de discussion :
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me
renvoie un string vide ou nul. J'ai vérifié en activant la trace, et le
nom __EVENTTARGET n'apparaît pas dans la collection Form. Seuls
apparaissent __VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma
page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert




================= >
Patrice.

Un problème réglé. Pour information, ce n'est pas
Request.Form(MyButton.ClientID)<>"", mais
Request.Form(MyButton.UniqueID)<>""

Merci,
Gilbert



Gilbert Tordeur
Le #19765231
Avant d'appliquer la méthode ToString, il faut que tu testes
Request.Form("ImbG.ClientID") par rapport à Nothing. Si
Request.Form("ImbG.ClientID") = Nothing, alors ce contrôle n'est pas le
bouton sur lequel on a cliqué. Et tu essayes un autre...

Gilbert

"Emilie" 4a5e070e$0$12630$
Merci Gilles

Avec Dim LeControle As String = Request.Form("ImbG.ClientID").ToString
j'ai toujours le message : la référence d'objet
n'est pas définie à une instance d'un objet

Emilie

"Gilbert Tordeur" news:
Voici,
Gilbert

================ >>
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert

================= >>
Bonjour,

Request.Form("__EVENTTARGET") mais généralement on réagit plutôt dans la
procédure évènementielle correspondant au bouton cliqué...

Eventuellement voir :

http://www.generation-nt.com/reponses/postback-entraide-2290911.html#reponse

--
Patrice



"Gilbert Tordeur" groupe de discussion :
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton
a cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert




==================== >>
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me
renvoie
un string vide ou nul. J'ai vérifié en activant la trace, et le nom
__EVENTTARGET n'apparaît pas dans la collection Form. Seuls apparaissent
__VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert

==================== >>
Au temps pour moi, cela dépend du control...

De base, lorsqu'on clique sur un "vrai" bouton, le navigateur renvoie une
valeur avec comme nom l'attribut name du bouton et avec comme valeur
l'attribut value. Tu vois qq chose dans la collection Form ?

Qq chose comme :

Request.form(MyButton.ClientID)<>"" devrait marcher (vérifier également
avec
"view source" dans le navigateur que l'attribut name du bouton a bien la
même valeur que son attribut "id").

Si ce n'est toujours pas ok, indique le type de bouton utilisé et je
ferais
un test...

--
Patrice


"Gilbert Tordeur" groupe de discussion :
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me
renvoie un string vide ou nul. J'ai vérifié en activant la trace, et le
nom __EVENTTARGET n'apparaît pas dans la collection Form. Seuls
apparaissent __VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma
page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert




================= >>
Patrice.

Un problème réglé. Pour information, ce n'est pas
Request.Form(MyButton.ClientID)<>"", mais
Request.Form(MyButton.UniqueID)<>""

Merci,
Gilbert







Emilie
Le #19768301
Bonjour Gilles

Quand je teste cela ne trouve pas le controle
avec le pas à pas j'ai le clienID="ctl100_CphContenu_ImbG1"

Les ImageButton sont ImbG1 à ImbGx

Mon Request.Form est mal codé ?

Emilie
"Gilbert Tordeur" news: %
Avant d'appliquer la méthode ToString, il faut que tu testes
Request.Form("ImbG.ClientID") par rapport à Nothing. Si
Request.Form("ImbG.ClientID") = Nothing, alors ce contrôle n'est pas le
bouton sur lequel on a cliqué. Et tu essayes un autre...

Gilbert

"Emilie" 4a5e070e$0$12630$
Merci Gilles

Avec Dim LeControle As String = Request.Form("ImbG.ClientID").ToString
j'ai toujours le message : la référence d'objet
n'est pas définie à une instance d'un objet

Emilie

"Gilbert Tordeur" news:
Voici,
Gilbert

================ >>>
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton
a
cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert

================= >>>
Bonjour,

Request.Form("__EVENTTARGET") mais généralement on réagit plutôt dans la
procédure évènementielle correspondant au bouton cliqué...

Eventuellement voir :

http://www.generation-nt.com/reponses/postback-entraide-2290911.html#reponse

--
Patrice



"Gilbert Tordeur" groupe de discussion :
Bonjour.

En VB2008 ASP.NET : je voudrais savoir, dans Page.Load, sur quel bouton
a cliqué l'utilisateur pour envoyer la page. Où puis-je trouver cette
information ?

Merci d'avance,
Gilbert




==================== >>>
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me
renvoie
un string vide ou nul. J'ai vérifié en activant la trace, et le nom
__EVENTTARGET n'apparaît pas dans la collection Form. Seuls apparaissent
__VIEWSTATE et __EVENTVALIDATION en plus de contrôles de ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert

==================== >>>
Au temps pour moi, cela dépend du control...

De base, lorsqu'on clique sur un "vrai" bouton, le navigateur renvoie
une
valeur avec comme nom l'attribut name du bouton et avec comme valeur
l'attribut value. Tu vois qq chose dans la collection Form ?

Qq chose comme :

Request.form(MyButton.ClientID)<>"" devrait marcher (vérifier également
avec
"view source" dans le navigateur que l'attribut name du bouton a bien la
même valeur que son attribut "id").

Si ce n'est toujours pas ok, indique le type de bouton utilisé et je
ferais
un test...

--
Patrice


"Gilbert Tordeur" groupe de discussion :
Patrice,

Merci pour ta réponse. Cependant, Request.Form("__EVENTTARGET") me
renvoie un string vide ou nul. J'ai vérifié en activant la trace, et le
nom __EVENTTARGET n'apparaît pas dans la collection Form. Seuls
apparaissent __VIEWSTATE et __EVENTVALIDATION en plus de contrôles de
ma page.

Pour te rassurer, je traite bien l'événement dans la routine _Click du
bouton. Mais j'ai ici un cas très particulier où j'aimerais avoir
l'information dans Page.Load, donc avant le traitement normal.

Gilbert




================= >>>
Patrice.

Un problème réglé. Pour information, ce n'est pas
Request.Form(MyButton.ClientID)<>"", mais
Request.Form(MyButton.UniqueID)<>""

Merci,
Gilbert











Gilbert Tordeur
Le #19768511
ta Request.Form est normale. Les noms des contrôles qui reviennent sont
toujours préfixés. C'est pourquoi il faut utiliser le UniqueID.
Gilbert

"Emilie" 4a5f2416$0$12639$
Bonjour Gilles

Quand je teste cela ne trouve pas le controle
avec le pas à pas j'ai le clienID="ctl100_CphContenu_ImbG1"

Les ImageButton sont ImbG1 à ImbGx

Mon Request.Form est mal codé ?

Emilie


Emilie
Le #19768871
Donc comme ce code :

Dim control As Control = Nothing

Dim CtrlName As String = Request.Form("ImbG.UniqueID")

If Not String.IsNullOrEmpty(CtrlName) Then

control = Me.FindControl(CtrlName)

Dim LeControle As String = control.ID

End If


Emilie

"Gilbert Tordeur" news:
ta Request.Form est normale. Les noms des contrôles qui reviennent sont
toujours préfixés. C'est pourquoi il faut utiliser le UniqueID.
Gilbert

"Emilie" 4a5f2416$0$12639$
Bonjour Gilles

Quand je teste cela ne trouve pas le controle
avec le pas à pas j'ai le clienID="ctl100_CphContenu_ImbG1"

Les ImageButton sont ImbG1 à ImbGx

Mon Request.Form est mal codé ?

Emilie






Emilie
Le #19772181
Bonjour Gilles

J'ai modifié mon code comme suit :

Dim control As Control = Nothing

Dim CtrlName As String = Request.Form("ImbG.UniqueID")

If Not String.IsNullOrEmpty(CtrlName) Then

control = Me.FindControl(CtrlName)

Dim LeControle As String = control.ID

Else

For Each ctl As String In Me.Request.Form

Dim c As Control = Me.FindControl(ctl)

If TypeOf c Is System.Web.UI.WebControls.ImageButton Then

Dim LeControle As String = c.ID

End If

Next

End If

Quand je teste au pas à pas, dans la boucle for next le ImbG n'est pas
trouvé.
Mon probléme c'est que j'ai trois séries de bouton créés dynamiquement :
ImbG, ImbAJ et ImbFN

Quand je clic sur ImbAJ ou ImbFN le postback supprime les ImbAJ ou les ImbFN

Emilie



"Gilbert Tordeur" news:
ta Request.Form est normale. Les noms des contrôles qui reviennent sont
toujours préfixés. C'est pourquoi il faut utiliser le UniqueID.
Gilbert

"Emilie" 4a5f2416$0$12639$
Bonjour Gilles

Quand je teste cela ne trouve pas le controle
avec le pas à pas j'ai le clienID="ctl100_CphContenu_ImbG1"

Les ImageButton sont ImbG1 à ImbGx

Mon Request.Form est mal codé ?

Emilie






Publicité
Poster une réponse
Anonyme