Un contrôle ajouté disparaît qd on reload la page [C# .NET 2.0] - C#/.NET managed - Programmation
Marsh Posté le 09-01-2007 à 23:14:53
Coucou
ça veut dire quoi "leaky abstraction" ?
Sinon, le code généré pour le label ajouté est :
Code :
|
Pourquoi tu veux savoir ça ?
Merci bien en tout cas si tu peux m'aider
Marsh Posté le 09-01-2007 à 23:18:31
Nan mais le reste et tout. Parce que là tu insère le label si !postback, donc forcément quand tu cliques sur le bouton ça va postbacker, donc pas de label insérer.
Leaky Abstraction, parce que ASP.NET fait tout pour toi, et donc souvent des trucs simples à faire avec le langage en-dessous (HTML) peut tout à coup devenir compliqué ou pas clair parce que tu ne manipules pas directement l'HTML.
Un truc du style Button_Click est un non-sens total en terme de web : d'un point de vue du langage HTML ou du protocole HTTP, on ne clique jamais sur un bouton. En fait, on envoie une requête à une certaine URL avec quelques informations. Tu suis ?
Marsh Posté le 10-01-2007 à 00:07:09
Le if (!IsPostBack) est fait exprès, parce que je ne veux à avoir à rajouter la Label à chaque fois.
Je comprends bien pourquoi il s'en va à chaque reload, mais j'aimerais bien trouver un moyen pour qu'il persiste.
EnableViewState=true ne change rien... je me demande si je ne dois pas utiliser un ViewState et y mettre le contenu du <div>, et à chaque reload je re-remplis le <div> avec le ViewState. C'est moche hein ?
Je te donne le code HTML généré au premier chargement (le label est bien là)
Code :
|
Mais je ne comprends tjs pas pourquoi tu as besoin de ce code
Merci bien en tout cas pour ton aide, et si tu trouves une solution...
Marsh Posté le 10-01-2007 à 11:13:26
Roodie a écrit : Le if (!IsPostBack) est fait exprès, parce que je ne veux à avoir à rajouter la Label à chaque fois. |
Tu es obligé de le faire, sinon il s'affichera pas. Que la page soit appellée en get ou en post, il faut la regénérer entièrement
Roodie a écrit : Mais je ne comprends tjs pas pourquoi tu as besoin de ce code |
Parce que c'est le plus important : tout la tambouille d'asp.net sert à générer du code HTML sans trop se prendre la tête. Maintenant s'il génère n'importe quoi, c'est normal que ça marche pas Donc parfois le mieux est de voir ce qui sort
Marsh Posté le 10-01-2007 à 14:18:19
Snif, je ne peux pas faire ce que j'espérais alors
Bin si qqn a une idée
Merci bcp à toi en tout cas
Marsh Posté le 10-01-2007 à 23:00:50
Coucou
Voici une solution à mon problème. Pas aussi bien que je ne l'espérais mais bon...
Code :
|
Tu l'as compris, j'utilise "RenderControl()" pour récupérer le contenu de "myDiv", puis ensuite j'utiliserai le ViewState pour récharger le contenu à chaque fois...
Merci encore bcp de ton aide
Marsh Posté le 09-01-2007 à 22:45:27
Bonjour à tous
Voici ce que mon code fait :
- au chargement de la page .aspx, il ajoute un label à "myDiv" (qui est un <div runat="server /> )
- qd j'appuie sur le bouton, le label disparaît. Or, je ne veux pas qu'il disparaisse...
Voici mon code, très simple :
Comment puis-je faire pour que le label ajouté ne disparaisse pas qd j'appuie sur le bouton ?
Merci beaucoup