Comment mettre un indice dans une zone de texte asp:


102

Comment mettre un indice / un espace réservé dans un asp: TextBox? Quand je dis un indice, je veux dire un texte qui disparaît lorsque l'utilisateur clique dessus. Existe-t-il un moyen d'atteindre la même chose en utilisant html / css?


2
Quels navigateurs prenez-vous en charge? Les navigateurs HTML5 prennent en charge l' placeholderattribut pour les zones de texte.
rikitikitik

Réponses:


200

L' placeholderattribut

Vous recherchez l' placeholderattribut. Utilisez-le comme tout autre attribut dans votre contrôle ASP.net:

<asp:textbox id="txtWithHint" placeholder="hint" runat="server"/>

Ne vous inquiétez pas de votre IDE (c'est-à-dire Visual Studio) peut-être ne pas connaître l'attribut. Les attributs qui ne sont pas enregistrés avec ASP.net sont transmis et rendus tels quels. Ainsi, le code ci-dessus se traduit (essentiellement) par:

<input type="text" placeholder="hint"/>

Utilisation placeholderdans les ressources

Une bonne façon d'appliquer l'indicateur au contrôle consiste à utiliser des ressources . De cette façon, vous pouvez avoir des indices localisés. Supposons que vous ayez un fichier index.aspx , votre fichier App_LocalResources / index.aspx.resx contient

<data name="WithHint.placeholder">
    <value>hint</value>
</data>

et votre contrôle ressemble à

<asp:textbox id="txtWithHint" meta:resourcekey="WithHint" runat="server"/>

le résultat rendu ressemblera à celui du chapitre ci-dessus.

Ajouter un attribut dans le code derrière

Comme tout autre attribut, vous pouvez ajouter le placeholderau AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");

2
Pour une raison quelconque, l'astuce des ressources "WithHint.placeholder"n'a pas fonctionné pour moi.
Mmm

1
Lorsque vous utilisez des ressources, vous pouvez le faire pour un fichier de ressources local: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />ou pour des ressources globales:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr

lors de l'ajout d'un contrôle dans le code, tout ce dont vous avez apparemment besoin est: myTextBox.Attributes.Add ("placeholder", "hint");
Eliot Gillum

61

Écrivez simplement comme ceci:

<asp:TextBox ID="TextBox1" runat="server" placeholder="hi test"></asp:TextBox>

19
 <asp:TextBox runat="server" ID="txtPassword" placeholder="Password">

Cela fonctionnera, vous pourriez un certain temps penser que cela ne fonctionne pas car Intellisence n'affiche pas d' espace réservé


7

Ajout d'attributs d'espace réservé à partir de code-behind:

txtFilterTerm.Attributes.Add("placeholder", "Filter" + Filter.Name);

Ou

txtFilterTerm.Attributes["placeholder"] = "Filter" + Filter.Name;

Ajout d'attributs d'espace réservé à partir de la page aspx

<asp:TextBox type="text" runat="server" id="txtFilterTerm" placeholder="Filter" />

Ou

<input type="text" id="txtFilterTerm" placeholder="Filter"/>

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.