OVH Cloud OVH Cloud

postbackurl et masterpage ??

4 réponses
Avatar
Thierry Schembri
Bonjour,

Je suis confronté à un petit problème (framework 2.0).

J'ai un formulaire simple (un TextBox et un bouton), je veux que le
postback se fasse sur une autre url, je modifie donc la proprieté
postbackurl du bouton. Ca marche, dans l'url d'arrivée, je fais :

Page p = this.PreviousPage;
string texte = ((TextBox)p.findControl("TextBox1")).Text; // <- mon
textbox s'appelle TextBox1 dans la 1ere page.

Je récupère bien dans la string texte le contenu de mon champ.

Maintenant, je modifie ma page de départ et je lui affecte une master
page. Je postback, arrivé sur la page de destination : plantage, et
pour cause : il ne trouve plus le controle "TextBox1" sur la page de
départ. Je regarde ce qu'il a envoyé, et là, je vois que mon controle
ne s'appelle plus "TextBox1" mais "ctl00$TextBox1". Pas glop !

Je subodore que ctl00$TextBox1 va à nouveau changer en fonction de
paramètres qui m'échappent et je ne veux donc pas faire de find dessus,
ma question (simple) : comment faire ? ;-)

Merci de votre aide !

4 réponses

Avatar
johan
Réécrit en dur l'id de ton texbox avant l'affichage réél de ta
page, dans le prerender ou ailleur.

J'ai déja eu le meme pb avec des usercontrols ...

l'exemple ici se passe dnas le Item_Bound d'un datagrid :
System.Web.UI.WebControls.TextBox texbox1 =
(System.Web.UI.WebControls.TextBox)e.Item.FindControl("texbox1");
texbox1.ID = "texbox1";
Avatar
Thierry Schembri
merci pour l'idée, ça me semble incroyable qu'on soit obligé de passer
par un tel hack !
Avatar
Thomas Bolon
Thierry Schembri a écrit :
merci pour l'idée, ça me semble incroyable qu'on soit obligé de passer
par un tel hack !





Est-ce que ce ctl100 ne correspond pas au fait que ton contrôle soit
maintenant inclu dans un placeholder ? As-tu vérifié que ton placeHolder
avait bien un nom de renseigné ? (ctl100 resselble à un ID généré)

Si tu files un nom à ce fameux ctl100, alors tu pourras retrouver ta
textbox à coup sur (son nom ne changera plus).
Avatar
johan
Je n'ai pas trouvé d'autres parades à ce jour.
Pour moi sous VS2003 cela ne fonctionnait pas sans ce type de parade,
pourtant je suis d'accord avec la logique de Thierry. Je n'ai pas
encore testé sous VS2005.