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

LinkButton en dynamique

4 réponses
Avatar
pierre
Bonjour,
voila, je butte sur un truc (et j'imagine que je ne suis pas le 1er).
Je cherche à ajouter des linkbutton en dynamique.

pour l'instant, j'ai fait une fonction comme celle ci:

System.Web.UI.WebControls.LinkButton lkbNouveau = new LinkButton();
lkbNouveau.Text = pcarTexte;
lkbNouveau.ID = pcarTexte;
lkbNouveau.Click +=new EventHandler(lkbNouveau_Click);
Panel1.Controls.Add(lkbNouveau);

et son clic comme ca:

private void lkbNouveau_Click(object sender, EventArgs e)
{
lblControle.Text = ((LinkButton)sender).Text;
}

...et ca marche pas.
- le lien apparait bien (je le commande sur par un bouton) mais si je
rappuie sur mon bouton de creation, ca n'en rajoute pas un autre à coté
(je fais quand meme attention à ne pas mettre le meme pcarTexte à ma
fonction la 2eme fois).
Si je clique sur le lien créé, il disparrait. En fait, je ne passe meme pas
dans la fonction de clic.

Si j'ai mis le nouveau linkButton dans un panel, c'est parceque si je fais
this.Controls.Add(lkbNouveau); ca ne marche pas (il semble qu'il ne le mets
pas entre les 2 tag <forms ...>

Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
Bonne journée
Pierre

4 réponses

Avatar
Julien Bakmezdjian [MS]
Bonjour,

Le comportement que vous décrivez me semble... normal.
En effet, en ASP.NET, le serveur ne se souvient pas de l'état de la page à
la requête précédente. La page est systématiquement reconstruite de 0 ("from
scratch").
Il faudrait implémenter un système de cache en variable de session qui
mémorise le nombre de contrôles à afficher; puis dans le OnLoad, on les
reconstruira...

Cordialement,

Julien Bakmezjdian

"pierre" wrote in message
news:
Bonjour,
voila, je butte sur un truc (et j'imagine que je ne suis pas le 1er).
Je cherche à ajouter des linkbutton en dynamique.

pour l'instant, j'ai fait une fonction comme celle ci:

System.Web.UI.WebControls.LinkButton lkbNouveau = new LinkButton();
lkbNouveau.Text = pcarTexte;
lkbNouveau.ID = pcarTexte;
lkbNouveau.Click +=new EventHandler(lkbNouveau_Click);
Panel1.Controls.Add(lkbNouveau);

et son clic comme ca:

private void lkbNouveau_Click(object sender, EventArgs e)
{
lblControle.Text = ((LinkButton)sender).Text;
}

...et ca marche pas.
- le lien apparait bien (je le commande sur par un bouton) mais si je
rappuie sur mon bouton de creation, ca n'en rajoute pas un autre à coté
(je fais quand meme attention à ne pas mettre le meme pcarTexte à ma
fonction la 2eme fois).
Si je clique sur le lien créé, il disparrait. En fait, je ne passe meme
pas
dans la fonction de clic.

Si j'ai mis le nouveau linkButton dans un panel, c'est parceque si je fais
this.Controls.Add(lkbNouveau); ca ne marche pas (il semble qu'il ne le
mets
pas entre les 2 tag <forms ...>

Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
Bonne journée
Pierre



Avatar
pierre
OK, je vois le pb. je vais essayer.
par contre, je me demande pourquoi il ne passe pas dans le clic. quand
j'appuie, je controle existe. non?
Merci
Pierre

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Le comportement que vous décrivez me semble... normal.
En effet, en ASP.NET, le serveur ne se souvient pas de l'état de la page à
la requête précédente. La page est systématiquement reconstruite de 0 ("from
scratch").
Il faudrait implémenter un système de cache en variable de session qui
mémorise le nombre de contrôles à afficher; puis dans le OnLoad, on les
reconstruira...

Cordialement,

Julien Bakmezjdian

"pierre" wrote in message
news:
> Bonjour,
> voila, je butte sur un truc (et j'imagine que je ne suis pas le 1er).
> Je cherche à ajouter des linkbutton en dynamique.
>
> pour l'instant, j'ai fait une fonction comme celle ci:
>
> System.Web.UI.WebControls.LinkButton lkbNouveau = new LinkButton();
> lkbNouveau.Text = pcarTexte;
> lkbNouveau.ID = pcarTexte;
> lkbNouveau.Click +=new EventHandler(lkbNouveau_Click);
> Panel1.Controls.Add(lkbNouveau);
>
> et son clic comme ca:
>
> private void lkbNouveau_Click(object sender, EventArgs e)
> {
> lblControle.Text = ((LinkButton)sender).Text;
> }
>
> ...et ca marche pas.
> - le lien apparait bien (je le commande sur par un bouton) mais si je
> rappuie sur mon bouton de creation, ca n'en rajoute pas un autre à coté
> (je fais quand meme attention à ne pas mettre le meme pcarTexte à ma
> fonction la 2eme fois).
> Si je clique sur le lien créé, il disparrait. En fait, je ne passe meme
> pas
> dans la fonction de clic.
>
> Si j'ai mis le nouveau linkButton dans un panel, c'est parceque si je fais
> this.Controls.Add(lkbNouveau); ca ne marche pas (il semble qu'il ne le
> mets
> pas entre les 2 tag <forms ...>
>
> Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
> Bonne journée
> Pierre
>





Avatar
Julien Bakmezdjian [MS]
Bonjour,

La méthode de click n'est pas appelée, car lors du retour vers la serveur,
la page est reconstruite depuis la base, et donc sans le contrôle
linkButton... Pas de linkButton, pas de méthode de click ! En revanche, je
pense que si vous reconstruisez vous-même et "à la main" l'ensemble des
contrôles qui douvent être présents sur la page (depuis par exemple des
valeurs stockées en variables de session) dans le OnLoad de la page, tout
devrait être OK.

Julien Bakmezdjian


"pierre" wrote in message
news:
OK, je vois le pb. je vais essayer.
par contre, je me demande pourquoi il ne passe pas dans le clic. quand
j'appuie, je controle existe. non?
Merci
Pierre

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Le comportement que vous décrivez me semble... normal.
En effet, en ASP.NET, le serveur ne se souvient pas de l'état de la page
à
la requête précédente. La page est systématiquement reconstruite de 0
("from
scratch").
Il faudrait implémenter un système de cache en variable de session qui
mémorise le nombre de contrôles à afficher; puis dans le OnLoad, on les
reconstruira...

Cordialement,

Julien Bakmezjdian

"pierre" wrote in message
news:
> Bonjour,
> voila, je butte sur un truc (et j'imagine que je ne suis pas le 1er).
> Je cherche à ajouter des linkbutton en dynamique.
>
> pour l'instant, j'ai fait une fonction comme celle ci:
>
> System.Web.UI.WebControls.LinkButton lkbNouveau = new LinkButton();
> lkbNouveau.Text = pcarTexte;
> lkbNouveau.ID = pcarTexte;
> lkbNouveau.Click +=new EventHandler(lkbNouveau_Click);
> Panel1.Controls.Add(lkbNouveau);
>
> et son clic comme ca:
>
> private void lkbNouveau_Click(object sender, EventArgs e)
> {
> lblControle.Text = ((LinkButton)sender).Text;
> }
>
> ...et ca marche pas.
> - le lien apparait bien (je le commande sur par un bouton) mais si je
> rappuie sur mon bouton de creation, ca n'en rajoute pas un autre à coté
> (je fais quand meme attention à ne pas mettre le meme pcarTexte à ma
> fonction la 2eme fois).
> Si je clique sur le lien créé, il disparrait. En fait, je ne passe meme
> pas
> dans la fonction de clic.
>
> Si j'ai mis le nouveau linkButton dans un panel, c'est parceque si je
> fais
> this.Controls.Add(lkbNouveau); ca ne marche pas (il semble qu'il ne le
> mets
> pas entre les 2 tag <forms ...>
>
> Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
> Bonne journée
> Pierre
>







Avatar
pierre
Préssé par le temps, je suis passé par une autre méthode moins élégante. En
tout cas, merci beaucoup de votre aide.
J'essayerai quand meme pour ma culture perso: cette fois, j'ai réussi a
trouver une parade mais les prochainnes....
Encore merci
Pierre




"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

La méthode de click n'est pas appelée, car lors du retour vers la serveur,
la page est reconstruite depuis la base, et donc sans le contrôle
linkButton... Pas de linkButton, pas de méthode de click ! En revanche, je
pense que si vous reconstruisez vous-même et "à la main" l'ensemble des
contrôles qui douvent être présents sur la page (depuis par exemple des
valeurs stockées en variables de session) dans le OnLoad de la page, tout
devrait être OK.

Julien Bakmezdjian


"pierre" wrote in message
news:
> OK, je vois le pb. je vais essayer.
> par contre, je me demande pourquoi il ne passe pas dans le clic. quand
> j'appuie, je controle existe. non?
> Merci
> Pierre
>
> "Julien Bakmezdjian [MS]" a écrit :
>
>> Bonjour,
>>
>> Le comportement que vous décrivez me semble... normal.
>> En effet, en ASP.NET, le serveur ne se souvient pas de l'état de la page
>> à
>> la requête précédente. La page est systématiquement reconstruite de 0
>> ("from
>> scratch").
>> Il faudrait implémenter un système de cache en variable de session qui
>> mémorise le nombre de contrôles à afficher; puis dans le OnLoad, on les
>> reconstruira...
>>
>> Cordialement,
>>
>> Julien Bakmezjdian
>>
>> "pierre" wrote in message
>> news:
>> > Bonjour,
>> > voila, je butte sur un truc (et j'imagine que je ne suis pas le 1er).
>> > Je cherche à ajouter des linkbutton en dynamique.
>> >
>> > pour l'instant, j'ai fait une fonction comme celle ci:
>> >
>> > System.Web.UI.WebControls.LinkButton lkbNouveau = new LinkButton();
>> > lkbNouveau.Text = pcarTexte;
>> > lkbNouveau.ID = pcarTexte;
>> > lkbNouveau.Click +=new EventHandler(lkbNouveau_Click);
>> > Panel1.Controls.Add(lkbNouveau);
>> >
>> > et son clic comme ca:
>> >
>> > private void lkbNouveau_Click(object sender, EventArgs e)
>> > {
>> > lblControle.Text = ((LinkButton)sender).Text;
>> > }
>> >
>> > ...et ca marche pas.
>> > - le lien apparait bien (je le commande sur par un bouton) mais si je
>> > rappuie sur mon bouton de creation, ca n'en rajoute pas un autre à coté
>> > (je fais quand meme attention à ne pas mettre le meme pcarTexte à ma
>> > fonction la 2eme fois).
>> > Si je clique sur le lien créé, il disparrait. En fait, je ne passe meme
>> > pas
>> > dans la fonction de clic.
>> >
>> > Si j'ai mis le nouveau linkButton dans un panel, c'est parceque si je
>> > fais
>> > this.Controls.Add(lkbNouveau); ca ne marche pas (il semble qu'il ne le
>> > mets
>> > pas entre les 2 tag <forms ...>
>> >
>> > Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
>> > Bonne journée
>> > Pierre
>> >
>>
>>
>>