Add HTML5 placeholder text to a textbox .net

前端 未结 4 1501
一生所求
一生所求 2020-12-10 10:29

I have a standard input:


I\'d like to have this render with a dyn

相关标签:
4条回答
  • 2020-12-10 11:05

    Because I find it annoying/tiresome to add all the placeholders from the code behind. You can create a new TextBox Class that inherits the WebControls TextBox and then you can add the placeholder from the CodeBehind or from the HTML Side.

    TextBox.cs (Placed in Project/Controls/)

    namespace Project.Controls
    {
        public class TextBox : System.Web.UI.WebControls.TextBox
        {
            public string PlaceHolder { get; set; }
    
            protected override void OnLoad(EventArgs e)
            {
                if(!string.IsNullOrWhiteSpace(PlaceHolder))
                    this.Attributes.Add("placeholder", PlaceHolder);
    
                base.OnLoad(e);
            }
        }
    }
    

    Register Control In the Web.Config:

      <system.web>
        <pages>
          <controls>
            <add tagPrefix="ext" assembly="Project" namespace="Project.Controls" />
          </controls>
        </pages>
      </system.web>
    

    (use whatever tag prefix you want)

    Usage:

    <ext:TextBox runat="server" id="SomeId" PlaceHolder="This is a PlaceHolder" />
    

    or from the code behind

    SomeId.PlaceHolder="This is a PlaceHolder";
    
    0 讨论(0)
  • 2020-12-10 11:05

    I just put placeholder property in HTML code and works:

    <asp:TextBox placeholder="hola mundo" ID="some_id" runat="server"/>
    
    0 讨论(0)
  • 2020-12-10 11:14

    You could use the Attributes collection. So you would have something like

    txtSearchTerm.Attributes.Add("placeholder", "Search" + Site.Name);
    

    or

    txtSearchTerm.Attributes["placeholder"] = "Search" + Site.Name; // or Attributes("placeholder") if you're using vb.net
    

    And if you're using resources for localization/translation:

    txtSearchTerm.Attributes["placeholder"] = GetLocalResourceObject("YourLocalResourceName").ToString();
    
    0 讨论(0)
  • 2020-12-10 11:16

    There is also the TextBoxWatermark extender included in Microsoft's Ajax Control toolkit. It's not HTML5, but it's backwards compatible (I believe). http://www.asp.net/AjaxLibrary/AjaxControlToolkitSampleSite/TextBoxWatermark/TextBoxWatermark.aspx

    <ajaxToolkit:TextBoxWatermarkExtender ID="TBWE2" runat="server"
        TargetControlID="TextBox1"
        WatermarkText="Type First Name Here"
        WatermarkCssClass="watermarked" />
    
    0 讨论(0)
提交回复
热议问题