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?

user590849
la source
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");
Linus Caldwell
la source
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>
pathak tejpal
la source
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é

Shrivallabh
la source
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"/>
Shibu Thomas
la source
0
asp:TextBox ID="txtName" placeholder="any text here"
Ahmed Soliman
la source