Як помістити підказку в текстовому полі "asp: text"


102

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


2
Які браузери ви підтримуєте? Браузери HTML5 підтримують placeholderатрибут текстових полів.
rikitikitik

Відповіді:


200

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 ("заповнювач місця", "підказка");
Eliot Gillum


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"/>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.