¿Cómo pongo una pista en un ASP: cuadro de texto?

102

¿Cómo pongo una sugerencia / marcador de posición dentro de un asp: TextBox? Cuando digo una pista me refiero a un texto que desaparece cuando el usuario hace clic en él. ¿Hay alguna manera de lograr lo mismo usando html / css?

usuario590849
fuente
2
¿Qué navegadores soporta? Los navegadores HTML5 admiten el placeholderatributo para cuadros de texto.
rikitikitik

Respuestas:

200

El placeholderatributo

Estás buscando el placeholderatributo. Úselo como cualquier otro atributo dentro de su control ASP.net:

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

No se preocupe por su IDE (es decir, Visual Studio), tal vez sin conocer el atributo. Los atributos que no están registrados con ASP.net se pasan y se representan como están. Entonces, el código anterior (básicamente) se renderiza a:

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

Usando placeholderen recursos

Una buena forma de aplicar la sugerencia al control es utilizar recursos . De esta forma, es posible que tenga pistas localizadas. Supongamos que tiene un archivo index.aspx , su archivo App_LocalResources / index.aspx.resx contiene

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

y tu control parece

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

el resultado renderizado tendrá el mismo aspecto que el del capítulo anterior.

Agregar atributo en el código detrás

Como cualquier otro atributo, puede agregarlo placeholdera AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");
Linus Caldwell
fuente
2
Por alguna razón, el truco de los recursos "WithHint.placeholder"no funcionó para mí.
Mmm
1
Al usar recursos, puede hacer esto para un archivo de recursos local: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />o para recursos globales:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr
al agregar un control en el código, todo lo que aparentemente necesita es: myTextBox.Attributes.Add ("placeholder", "hint");
Eliot Gillum
61

Solo escribe así:

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

Esto funcionará, es posible que en algún momento sienta que no funciona debido a que Intellisence no muestra el marcador de posición

Shrivallabh
fuente
7

Agregar atributos de marcador de posición desde el código subyacente:

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

O

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

Agregar atributos de marcador de posición desde la página aspx

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

O

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