Как вставить подсказку в текстовое поле asp:

104

Как мне поместить подсказку / заполнитель в asp: TextBox? Когда я говорю подсказку, я имею в виду текст, который исчезает, когда пользователь нажимает на него. Есть ли способ добиться того же с помощью html / css?

user590849
источник
2
Какие браузеры вы поддерживаете? Браузеры HTML5 поддерживают placeholderатрибут для текстовых полей.
rikitikitik 05

Ответы:

201

placeholderатрибут

Вы ищете placeholderатрибут. Используйте его как любой другой атрибут внутри элемента управления ASP.net:

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

Не беспокойтесь о своей IDE (т.е. Visual Studio), возможно, не зная об атрибуте. Атрибуты, которые не зарегистрированы в ASP.net, передаются и отображаются как есть. Таким образом, приведенный выше код (в основном) отображает:

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

Использование placeholderв ресурсах

Прекрасный способ применения подсказки к элементу управления - использование ресурсов . Таким образом, у вас могут быть локализованные подсказки. Допустим, у вас есть файл index.aspx , ваш файл App_LocalResources / index.aspx.resx содержит

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

и ваш контроль выглядит как

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

полученный результат будет выглядеть так же, как и в главе выше.

Добавить атрибут в код позади

Как и любой другой атрибут можно добавить placeholderк AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");
Линус Колдуэлл
источник
2
По какой-то причине уловка с ресурсами "WithHint.placeholder"у меня не сработала.
Ммм
1
При использовании ресурсов вы можете сделать это для локального файла ресурсов: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />или для глобальных ресурсов:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr
при добавлении элемента управления в код все, что вам, по-видимому, понадобится: myTextBox.Attributes.Add («заполнитель», «подсказка»);
Элиот Гиллум,
61

Просто напишите так:

<asp:TextBox ID="TextBox1" runat="server" placeholder="hi test"></asp:TextBox>
Патхак Теджпал
источник
19
 <asp:TextBox runat="server" ID="txtPassword" placeholder="Password">

Это сработает, и вы когда-нибудь почувствуете, что это не работает из-за того, что Intellisence не показывает заполнитель

Шриваллабх
источник
7

Добавление атрибутов заполнителя из кода программной части:

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

Или

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

Добавление атрибутов заполнителя со страницы aspx

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

Или

<input type="text" id="txtFilterTerm" placeholder="Filter"/>
Шибу Томас
источник
0
asp:TextBox ID="txtName" placeholder="any text here"
Ахмед Солиман
источник