Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb avec addhandler ou placeholder ?

6 réponses
Avatar
fred
Salut tout le monde !

petit soucis, enfin gros pour moi. J'utilise un AddHandler pour gerer
l'évènementiel d'un image bouton ajouté dynamiquement dans un placeHolder.

Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on clique
sur le bouton.

En revanche dans le code évènementiel, je veux modifier la valeur d'un
textbox statique tout ce qu'il a de plus clasique et la... Impossible.

Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
conserve bien la valeur (dans la code). En revanche, il ne semble pas s'agir
du texbox qui se trouve sur ma page mais d'une autre instance (!?) puisque le
textbox à l'écran conserve son ancienne valeur.

Sais pas si je suis très clair mais en gros, si je colle mon code dans
l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que dans un
bouton statique, il passe impecable... le addhandler serait il en mode
asyncrhone et travaillerait t'il sur des copies d'instance ???

Si quelqu'un connait la réponse ou au moins une piste....

Merci d'avance

Fred

6 réponses

Avatar
Frédéric Queudret [MS]
Bonjour,

Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?

Merci,
Frédéric.
"fred" wrote in message
news:
Salut tout le monde !

petit soucis, enfin gros pour moi. J'utilise un AddHandler pour gerer
l'évènementiel d'un image bouton ajouté dynamiquement dans un placeHolder.

Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
clique
sur le bouton.

En revanche dans le code évènementiel, je veux modifier la valeur d'un
textbox statique tout ce qu'il a de plus clasique et la... Impossible.

Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
conserve bien la valeur (dans la code). En revanche, il ne semble pas
s'agir
du texbox qui se trouve sur ma page mais d'une autre instance (!?) puisque
le
textbox à l'écran conserve son ancienne valeur.

Sais pas si je suis très clair mais en gros, si je colle mon code dans
l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que dans
un
bouton statique, il passe impecable... le addhandler serait il en mode
asyncrhone et travaillerait t'il sur des copies d'instance ???

Si quelqu'un connait la réponse ou au moins une piste....

Merci d'avance

Fred





Avatar
fred
Bonjour,

voici le code de la generation du bouton :

dim unBouton as ImageButton
unBouton = New ImageButton
unBouton.ImageUrl = "../Images/icon-pencil.gif"
unBouton.ToolTip = "Modifier un engagement"
unBouton.CommandArgument = Parametre
uneCelluleControle.Controls.Add(unBouton)
AddHandler unBouton.Command, AddressOf btnDynamiqueAjout_Click

sachant que uneCellule est une nouvelle cellule d'un tableau lui aussi
genere dynamiquement et ajoute dans un placeholder.

l'évènement btnDynamiqueAjout_Click se déclenche bien lorsque je clique sur
le bouton, en revanche le textbox que j'essaie de positionner semble ne pas
être la même instance que celui de la page.

Private Sub btnDynamiqueAjout_Click(ByVal sender As System.Object, ByVal e
As System.Web.UI.WebControls.CommandEventArgs)
txtMotifHeure.Text = "test"
End Sub

txtMotifHeure.Text = "test" marche correctement s'il est mis dans
l'évènementiel d'un bouton statique

merci d'avance,

Fred


"Frédéric Queudret [MS]" a écrit :

Bonjour,

Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?

Merci,
Frédéric.
"fred" wrote in message
news:
> Salut tout le monde !
>
> petit soucis, enfin gros pour moi. J'utilise un AddHandler pour gerer
> l'évènementiel d'un image bouton ajouté dynamiquement dans un placeHolder.
>
> Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
> clique
> sur le bouton.
>
> En revanche dans le code évènementiel, je veux modifier la valeur d'un
> textbox statique tout ce qu'il a de plus clasique et la... Impossible.
>
> Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
> conserve bien la valeur (dans la code). En revanche, il ne semble pas
> s'agir
> du texbox qui se trouve sur ma page mais d'une autre instance (!?) puisque
> le
> textbox à l'écran conserve son ancienne valeur.
>
> Sais pas si je suis très clair mais en gros, si je colle mon code dans
> l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que dans
> un
> bouton statique, il passe impecable... le addhandler serait il en mode
> asyncrhone et travaillerait t'il sur des copies d'instance ???
>
> Si quelqu'un connait la réponse ou au moins une piste....
>
> Merci d'avance
>
> Fred
>
>
>





Avatar
Frédéric Queudret [MS]
Est-ce que vous regénérez les contrôles à chaque postback de la page?

"fred" wrote in message
news:
Bonjour,

voici le code de la generation du bouton :

dim unBouton as ImageButton
unBouton = New ImageButton
unBouton.ImageUrl = "../Images/icon-pencil.gif"
unBouton.ToolTip = "Modifier un engagement"
unBouton.CommandArgument = Parametre
uneCelluleControle.Controls.Add(unBouton)
AddHandler unBouton.Command, AddressOf btnDynamiqueAjout_Click

sachant que uneCellule est une nouvelle cellule d'un tableau lui aussi
genere dynamiquement et ajoute dans un placeholder.

l'évènement btnDynamiqueAjout_Click se déclenche bien lorsque je clique
sur
le bouton, en revanche le textbox que j'essaie de positionner semble ne
pas
être la même instance que celui de la page.

Private Sub btnDynamiqueAjout_Click(ByVal sender As System.Object, ByVal
e
As System.Web.UI.WebControls.CommandEventArgs)
txtMotifHeure.Text = "test"
End Sub

txtMotifHeure.Text = "test" marche correctement s'il est mis dans
l'évènementiel d'un bouton statique

merci d'avance,

Fred


"Frédéric Queudret [MS]" a écrit :

Bonjour,

Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?

Merci,
Frédéric.
"fred" wrote in message
news:
> Salut tout le monde !
>
> petit soucis, enfin gros pour moi. J'utilise un AddHandler pour gerer
> l'évènementiel d'un image bouton ajouté dynamiquement dans un
> placeHolder.
>
> Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
> clique
> sur le bouton.
>
> En revanche dans le code évènementiel, je veux modifier la valeur d'un
> textbox statique tout ce qu'il a de plus clasique et la... Impossible.
>
> Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
> conserve bien la valeur (dans la code). En revanche, il ne semble pas
> s'agir
> du texbox qui se trouve sur ma page mais d'une autre instance (!?)
> puisque
> le
> textbox à l'écran conserve son ancienne valeur.
>
> Sais pas si je suis très clair mais en gros, si je colle mon code dans
> l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que
> dans
> un
> bouton statique, il passe impecable... le addhandler serait il en mode
> asyncrhone et travaillerait t'il sur des copies d'instance ???
>
> Si quelqu'un connait la réponse ou au moins une piste....
>
> Merci d'avance
>
> Fred
>
>
>







Avatar
fred
la table dynamique generee est stockee dans une variable de session apres sa
premiere generation (accé en base tres couteux pour le construire) et le code
suivant se trouve dans le page load :

if IsPostBack then
unPlaceHolder.Controls.Add(CType(Session("uneTable"),
System.Web.UI.WebControls.Table))
end if



"Frédéric Queudret [MS]" a écrit :

Est-ce que vous regénérez les contrôles à chaque postback de la page?

"fred" wrote in message
news:
> Bonjour,
>
> voici le code de la generation du bouton :
>
> dim unBouton as ImageButton
> unBouton = New ImageButton
> unBouton.ImageUrl = "../Images/icon-pencil.gif"
> unBouton.ToolTip = "Modifier un engagement"
> unBouton.CommandArgument = Parametre
> uneCelluleControle.Controls.Add(unBouton)
> AddHandler unBouton.Command, AddressOf btnDynamiqueAjout_Click
>
> sachant que uneCellule est une nouvelle cellule d'un tableau lui aussi
> genere dynamiquement et ajoute dans un placeholder.
>
> l'évènement btnDynamiqueAjout_Click se déclenche bien lorsque je clique
> sur
> le bouton, en revanche le textbox que j'essaie de positionner semble ne
> pas
> être la même instance que celui de la page.
>
> Private Sub btnDynamiqueAjout_Click(ByVal sender As System.Object, ByVal
> e
> As System.Web.UI.WebControls.CommandEventArgs)
> txtMotifHeure.Text = "test"
> End Sub
>
> txtMotifHeure.Text = "test" marche correctement s'il est mis dans
> l'évènementiel d'un bouton statique
>
> merci d'avance,
>
> Fred
>
>
> "Frédéric Queudret [MS]" a écrit :
>
>> Bonjour,
>>
>> Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
>> Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?
>>
>> Merci,
>> Frédéric.
>> "fred" wrote in message
>> news:
>> > Salut tout le monde !
>> >
>> > petit soucis, enfin gros pour moi. J'utilise un AddHandler pour gerer
>> > l'évènementiel d'un image bouton ajouté dynamiquement dans un
>> > placeHolder.
>> >
>> > Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
>> > clique
>> > sur le bouton.
>> >
>> > En revanche dans le code évènementiel, je veux modifier la valeur d'un
>> > textbox statique tout ce qu'il a de plus clasique et la... Impossible.
>> >
>> > Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
>> > conserve bien la valeur (dans la code). En revanche, il ne semble pas
>> > s'agir
>> > du texbox qui se trouve sur ma page mais d'une autre instance (!?)
>> > puisque
>> > le
>> > textbox à l'écran conserve son ancienne valeur.
>> >
>> > Sais pas si je suis très clair mais en gros, si je colle mon code dans
>> > l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que
>> > dans
>> > un
>> > bouton statique, il passe impecable... le addhandler serait il en mode
>> > asyncrhone et travaillerait t'il sur des copies d'instance ???
>> >
>> > Si quelqu'un connait la réponse ou au moins une piste....
>> >
>> > Merci d'avance
>> >
>> > Fred
>> >
>> >
>> >
>>
>>
>>





Avatar
Frédéric Queudret [MS]
Ok, je pense comprendre alors de quoi cela vient:
L'instance que vous récupérez est différente de celle traitée puisque vous
reprenez une instance de votre variable session et non celle qui devrait
être regénérée à partir du postback.
J'ai déjà résolu ce genre de problème en surchargeant la méthode
CreateChildControls pour ajouter mes contrôles dynamiquement.
Ensuite dans l'événément Click ou autre j'appelle en tout premier lieu
EnsureChildControls() pour être sûr que l'arborscence de contrôles fils est
présente.
Regardez dans le MSDN au sujet de ces méthodes et dites moi si vous bloquez.
Frédéric.

"fred" wrote in message
news:
la table dynamique generee est stockee dans une variable de session apres
sa
premiere generation (accé en base tres couteux pour le construire) et le
code
suivant se trouve dans le page load :

if IsPostBack then
unPlaceHolder.Controls.Add(CType(Session("uneTable"),
System.Web.UI.WebControls.Table))
end if



"Frédéric Queudret [MS]" a écrit :

Est-ce que vous regénérez les contrôles à chaque postback de la page?

"fred" wrote in message
news:
> Bonjour,
>
> voici le code de la generation du bouton :
>
> dim unBouton as ImageButton
> unBouton = New ImageButton
> unBouton.ImageUrl = "../Images/icon-pencil.gif"
> unBouton.ToolTip = "Modifier un engagement"
> unBouton.CommandArgument = Parametre
> uneCelluleControle.Controls.Add(unBouton)
> AddHandler unBouton.Command, AddressOf btnDynamiqueAjout_Click
>
> sachant que uneCellule est une nouvelle cellule d'un tableau lui aussi
> genere dynamiquement et ajoute dans un placeholder.
>
> l'évènement btnDynamiqueAjout_Click se déclenche bien lorsque je clique
> sur
> le bouton, en revanche le textbox que j'essaie de positionner semble ne
> pas
> être la même instance que celui de la page.
>
> Private Sub btnDynamiqueAjout_Click(ByVal sender As System.Object,
> ByVal
> e
> As System.Web.UI.WebControls.CommandEventArgs)
> txtMotifHeure.Text = "test"
> End Sub
>
> txtMotifHeure.Text = "test" marche correctement s'il est mis dans
> l'évènementiel d'un bouton statique
>
> merci d'avance,
>
> Fred
>
>
> "Frédéric Queudret [MS]" a écrit :
>
>> Bonjour,
>>
>> Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
>> Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?
>>
>> Merci,
>> Frédéric.
>> "fred" wrote in message
>> news:
>> > Salut tout le monde !
>> >
>> > petit soucis, enfin gros pour moi. J'utilise un AddHandler pour
>> > gerer
>> > l'évènementiel d'un image bouton ajouté dynamiquement dans un
>> > placeHolder.
>> >
>> > Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
>> > clique
>> > sur le bouton.
>> >
>> > En revanche dans le code évènementiel, je veux modifier la valeur
>> > d'un
>> > textbox statique tout ce qu'il a de plus clasique et la...
>> > Impossible.
>> >
>> > Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
>> > conserve bien la valeur (dans la code). En revanche, il ne semble
>> > pas
>> > s'agir
>> > du texbox qui se trouve sur ma page mais d'une autre instance (!?)
>> > puisque
>> > le
>> > textbox à l'écran conserve son ancienne valeur.
>> >
>> > Sais pas si je suis très clair mais en gros, si je colle mon code
>> > dans
>> > l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que
>> > dans
>> > un
>> > bouton statique, il passe impecable... le addhandler serait il en
>> > mode
>> > asyncrhone et travaillerait t'il sur des copies d'instance ???
>> >
>> > Si quelqu'un connait la réponse ou au moins une piste....
>> >
>> > Merci d'avance
>> >
>> > Fred
>> >
>> >
>> >
>>
>>
>>







Avatar
fred
merci pour la piste, je regarde ca et vous tiens au courant

"Frédéric Queudret [MS]" a écrit :

Ok, je pense comprendre alors de quoi cela vient:
L'instance que vous récupérez est différente de celle traitée puisque vous
reprenez une instance de votre variable session et non celle qui devrait
être regénérée à partir du postback.
J'ai déjà résolu ce genre de problème en surchargeant la méthode
CreateChildControls pour ajouter mes contrôles dynamiquement.
Ensuite dans l'événément Click ou autre j'appelle en tout premier lieu
EnsureChildControls() pour être sûr que l'arborscence de contrôles fils est
présente.
Regardez dans le MSDN au sujet de ces méthodes et dites moi si vous bloquez.
Frédéric.

"fred" wrote in message
news:
> la table dynamique generee est stockee dans une variable de session apres
> sa
> premiere generation (accé en base tres couteux pour le construire) et le
> code
> suivant se trouve dans le page load :
>
> if IsPostBack then
> unPlaceHolder.Controls.Add(CType(Session("uneTable"),
> System.Web.UI.WebControls.Table))
> end if
>
>
>
> "Frédéric Queudret [MS]" a écrit :
>
>> Est-ce que vous regénérez les contrôles à chaque postback de la page?
>>
>> "fred" wrote in message
>> news:
>> > Bonjour,
>> >
>> > voici le code de la generation du bouton :
>> >
>> > dim unBouton as ImageButton
>> > unBouton = New ImageButton
>> > unBouton.ImageUrl = "../Images/icon-pencil.gif"
>> > unBouton.ToolTip = "Modifier un engagement"
>> > unBouton.CommandArgument = Parametre
>> > uneCelluleControle.Controls.Add(unBouton)
>> > AddHandler unBouton.Command, AddressOf btnDynamiqueAjout_Click
>> >
>> > sachant que uneCellule est une nouvelle cellule d'un tableau lui aussi
>> > genere dynamiquement et ajoute dans un placeholder.
>> >
>> > l'évènement btnDynamiqueAjout_Click se déclenche bien lorsque je clique
>> > sur
>> > le bouton, en revanche le textbox que j'essaie de positionner semble ne
>> > pas
>> > être la même instance que celui de la page.
>> >
>> > Private Sub btnDynamiqueAjout_Click(ByVal sender As System.Object,
>> > ByVal
>> > e
>> > As System.Web.UI.WebControls.CommandEventArgs)
>> > txtMotifHeure.Text = "test"
>> > End Sub
>> >
>> > txtMotifHeure.Text = "test" marche correctement s'il est mis dans
>> > l'évènementiel d'un bouton statique
>> >
>> > merci d'avance,
>> >
>> > Fred
>> >
>> >
>> > "Frédéric Queudret [MS]" a écrit :
>> >
>> >> Bonjour,
>> >>
>> >> Comment ajoutez-vous dynamiquement votre bouton image au placeholder?
>> >> Pouvez-vous fournir le code de la page ASPX qui ne fonctionne pas?
>> >>
>> >> Merci,
>> >> Frédéric.
>> >> "fred" wrote in message
>> >> news:
>> >> > Salut tout le monde !
>> >> >
>> >> > petit soucis, enfin gros pour moi. J'utilise un AddHandler pour
>> >> > gerer
>> >> > l'évènementiel d'un image bouton ajouté dynamiquement dans un
>> >> > placeHolder.
>> >> >
>> >> > Jusque la, pas de soucis, l'évènement se déclanche bien lorsque l'on
>> >> > clique
>> >> > sur le bouton.
>> >> >
>> >> > En revanche dans le code évènementiel, je veux modifier la valeur
>> >> > d'un
>> >> > textbox statique tout ce qu'il a de plus clasique et la...
>> >> > Impossible.
>> >> >
>> >> > Mon textbox prend bien la valeur, et si je clique plusieurs fois, il
>> >> > conserve bien la valeur (dans la code). En revanche, il ne semble
>> >> > pas
>> >> > s'agir
>> >> > du texbox qui se trouve sur ma page mais d'une autre instance (!?)
>> >> > puisque
>> >> > le
>> >> > textbox à l'écran conserve son ancienne valeur.
>> >> >
>> >> > Sais pas si je suis très clair mais en gros, si je colle mon code
>> >> > dans
>> >> > l'évènement cablé par le addhandler, ca ne fonctionne pas, alors que
>> >> > dans
>> >> > un
>> >> > bouton statique, il passe impecable... le addhandler serait il en
>> >> > mode
>> >> > asyncrhone et travaillerait t'il sur des copies d'instance ???
>> >> >
>> >> > Si quelqu'un connait la réponse ou au moins une piste....
>> >> >
>> >> > Merci d'avance
>> >> >
>> >> > Fred
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >>
>>
>>
>>