Comment utiliser le <label> tag ASP.NET?
Comment puis-je utiliser le <label>
balise à l'intérieur d'un ASP.NET application? Je veux qu'il soit valide, accessible et utilisable.
Je comprends optimale HTML façon de le faire:
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
Mais si le code ci-dessus est dans un ASP.NET de contrôle de l'utilisateur, l'ID d'entrée va changer, le sens de l'étiquette de "pour" attribut est inutile. J'ai pu faire la balise d'étiquette d'un serveur de contrôle et de définir sa "pour" attribut dans le code (Username.ClientID
), mais il semble que beaucoup de travail pour une chose si simple.
J'ai aussi vu de ce code HTML utilisé dans le passé:
<label>
<span>Username</span>
<input type="text" id="Username" runat="server" />
</label>
Quelle est la bonne approche?
Vous devez vous connecter pour publier un commentaire.
- Je utiliser
<asp:Label ... AssociatedControlID="Username" ...>
contrôles. Elles se rendait comme<label>
étiquettes et définissez lesfor
attribut de manière appropriée.Notez que vous pouvez également imbriquer d'autres balises à l'intérieur de l'Étiquette de contrôle si vous le souhaitez:
UsernameLabe.Text = "some error message"
va entraîner le contrôle de zone de texte à disparaître et qu'il va jeter un HttpException car il ne trouve pas le contrôle associés.Vous pouvez aussi l'écrire comme ceci:
Phil Haack a un post de blog sur ce sujet
utiliser le
<asp:Label>
serveur de contrôle. Il a une propriété que vous pouvez utiliser pour configurer l'ID de contrôle.Je suppose que la meilleure façon de le faire est de cette.
Si vous êtes en utilisant .NET 4 vous pouvez maintenant utiliser la propriété ClientIDMode pour configurer un ou plusieurs contrôles pour utilisation statique ou prévisible de l'ID. ClientIDMode propriété peut être définie sur la zone de texte directement ou vous pouvez le mettre sur n'importe quel parent, de contrôle ou de la page qui les contient.
Lire plus sur le ClientIDMode sur MSDN
Si vous voulez une étiquette, mais n'avez pas d'autre contrôle à utiliser dans
AssociatedControlID
on peut utiliser l'étiquette elle-mêmeVous mes aussi essayer ceci:
C'est ce que Visual Studio, ou tout autre logiciel vous donne si vous faites glisser et déposez une étiquette.