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 ? ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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";
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";
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";
Thierry Schembri
merci pour l'idée, ça me semble incroyable qu'on soit obligé de passer par un tel hack !
merci pour l'idée, ça me semble incroyable qu'on soit obligé de passer
par un tel hack !
merci pour l'idée, ça me semble incroyable qu'on soit obligé de passer par un tel hack !
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).
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).
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).
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.
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.
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.