Come inserisco un suggerimento in un asp: textbox


102

Come faccio a inserire un suggerimento / segnaposto all'interno di un asp: TextBox? Quando dico un suggerimento, intendo un testo che scompare quando l'utente fa clic su di esso. C'è un modo per ottenere lo stesso risultato usando html / css?


2
Quali browser stai supportando? I browser HTML5 supportano l' placeholderattributo per le caselle di testo.
rikitikitik

Risposte:


200

L' placeholderattributo

Stai cercando l' placeholderattributo. Usalo come qualsiasi altro attributo all'interno del tuo controllo ASP.net:

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

Non preoccuparti del tuo IDE (cioè Visual Studio) forse non conoscendo l'attributo. Gli attributi che non sono registrati con ASP.net vengono passati e visualizzati così come sono. Quindi il codice sopra (fondamentalmente) esegue il rendering in:

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

Utilizzo placeholderdi risorse

Un ottimo modo per applicare il suggerimento al controllo è utilizzare le risorse . In questo modo potresti avere suggerimenti localizzati. Supponiamo che tu abbia un file index.aspx , il tuo file App_LocalResources / index.aspx.resx contiene

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

e il tuo controllo sembra

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

il risultato renderizzato sarà lo stesso di quello nel capitolo precedente.

Aggiungi attributo nel codice sottostante

Come qualsiasi altro attributo puoi aggiungere il placeholdera AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");

2
Per qualche motivo il trucco delle risorse "WithHint.placeholder"non ha funzionato per me.
Mmm

1
Quando si utilizzano le risorse, è possibile farlo per un file di risorse locale: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />o per risorse globali:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr

quando aggiungi un controllo nel codice, apparentemente tutto ciò di cui hai bisogno è: myTextBox.Attributes.Add ("placeholder", "hint");
Eliot Gillum

61

Scrivi in ​​questo modo:

<asp:TextBox ID="TextBox1" runat="server" placeholder="hi test"></asp:TextBox>

19
 <asp:TextBox runat="server" ID="txtPassword" placeholder="Password">

Questo funzionerà, potresti sentire che non funziona perché Intellisence non mostra il segnaposto


7

Aggiunta di attributi segnaposto dal code-behind:

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

O

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

Aggiunta di attributi segnaposto dalla pagina aspx

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

O

<input type="text" id="txtFilterTerm" placeholder="Filter"/>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.