Como coloco a dica em uma caixa de texto asp:

102

Como faço para colocar uma dica / espaço reservado dentro de um asp: TextBox? Quando digo uma dica, quero dizer algum texto que desaparece quando o usuário clica nele. Existe uma maneira de conseguir o mesmo usando html / css?

user590849
fonte
2
Quais navegadores você oferece suporte? Os navegadores HTML5 suportam o placeholderatributo para caixas de texto.
rikitikitik

Respostas:

200

O placeholderatributo

Você está procurando o placeholderatributo. Use-o como qualquer outro atributo dentro do seu controle ASP.net:

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

Não se preocupe com o seu IDE (ou seja, Visual Studio) talvez não conheça o atributo. Os atributos que não estão registrados com ASP.net são transmitidos e processados ​​como estão. Portanto, o código acima (basicamente) é renderizado para:

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

Usando placeholderrecursos

Uma boa maneira de aplicar a dica ao controle é usando recursos . Dessa forma, você pode ter dicas localizadas. Digamos que você tenha um arquivo index.aspx , seu arquivo App_LocalResources / index.aspx.resx contém

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

e seu controle parece

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

o resultado renderizado será igual ao do capítulo acima.

Adicionar atributo no código atrás

Como qualquer outro atributo, você pode adicionar o placeholderao AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");
Linus Caldwell
fonte
2
Por algum motivo, o truque do recurso "WithHint.placeholder"não funcionou para mim.
Mmm
1
Ao usar recursos, você pode fazer isso para um arquivo de recurso local: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />ou para recursos globais:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr
ao adicionar um controle no código, tudo que você aparentemente precisa é: myTextBox.Attributes.Add ("placeholder", "hint");
Eliot Gillum
61

Basta escrever assim:

<asp:TextBox ID="TextBox1" runat="server" placeholder="hi test"></asp:TextBox>
pathak tejpal
fonte
19
 <asp:TextBox runat="server" ID="txtPassword" placeholder="Password">

Isso funcionará, você pode achar que não está funcionando porque o Intellisence não mostra o marcador

Shrivallabh
fonte
7

Adicionando atributos de placeholder de code-behind:

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

Ou

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

Adicionando atributos de espaço reservado da página aspx

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

Ou

<input type="text" id="txtFilterTerm" placeholder="Filter"/>
Shibu Thomas
fonte
0
asp:TextBox ID="txtName" placeholder="any text here"
Ahmed Soliman
fonte