我如何把提示放在asp:文本框中

如何在asp:TextBox中放置一个提示/占位符? 当我说一个提示时,我的意思是一些文字在用户点击时会消失。 有没有办法实现相同的使用HTML / CSS?

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"); 

只是这样写:

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

这将工作,你可能会有一段时间觉得它不工作,因为Intellisence不显示占位符

从代码隐藏添加占位符属性:

 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"/> 
 asp:TextBox ID="txtName" placeholder="any text here"