2011-06-28 4 views
1

J'ai l'impression de faire quelque chose de mal depuis longtemps déjà. J'ai généralement quelques champs, par exemple: permet de prendre le contrôle de téléchargement, je sélectionne un fichier, puis cliquez sur le bouton de téléchargement. Donc, il devrait me dire s'il n'y avait "aucun fichier sélectionné" ou "téléchargé avec succès". Ce que je fais est: je cache les deux étiquettes et ensuite je les active en code derrière selon les conditions. Si je vais changer de fichier à nouveau, ou si j'ai plus d'états, alors mon code est en désordre avec beaucoup de labels.visible = true. Comment gérez-vous cette chose?alternative à label.visible = true/false

Merci!

Répondre

3

Utilisez un contrôle Label, puis définissez sa propriété .Text dans votre code en fonction du message que vous souhaitez transmettre au client.

ASP:

<asp:Label runat="server" ID="lblMessage"></asp:Label> 

C#:

lblMessage.Text = "Something happened that you should be aware of."; 
+1

+1 je faire aussi bien, que je n'utiliser des étiquettes mais littéraux – Pleun

+0

Les deux contrôles sont valides dans cette situation. J'utiliserais moi aussi un 'Literal'. –

+2

Vous pouvez également ajouter l'attribut EnableViewState = "false". De cette façon, votre message d'erreur disparaîtra automatiquement lors de votre prochaine publication; vous n'aurez jamais à écrire lblMessage.Text = string.Empty n'importe où dans votre code-behind. Bien sûr, si vous voulez que le message reste visible à travers plusieurs publications, ne le faites pas. :) Mais j'ai constaté que dans de nombreux cas, le message d'erreur est vraiment significatif uniquement pour l'opération de publication la plus récente. – mikemanne