LinkButton en dynamique

Le
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

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Julien Bakmezdjian [MS]
Le #12326211
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" 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
Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
Bonne journée
Pierre



pierre
Le #12326201
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" 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 >
> Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
> Bonne journée
> Pierre
>





Julien Bakmezdjian [MS]
Le #12326181
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" 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" 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 >
> Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
> Bonne journée
> Pierre
>







pierre
Le #12325991
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" 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" >> 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 >> >
>> > Si qq1 peut m'aider, je le remercie beaucoup beaucoup.
>> > Bonne journée
>> > Pierre
>> >
>>
>>
>>





Poster une réponse
Anonyme