Search code examples
c#htmlasp.netwebformstextbox

ASP.Net Multiline Textbox Maxlength


I've bee searching for a way to limit the text within a TextBox which looks like this

<asp:TextBox runat="server" ID="tbTest" TextMode="MultiLine"  
             MaxLength="20" Rows="5" Columns="30" >
</asp:TextBox>

The property MaxLength="20" only works if the other property TextMode="MultiLine" is not set. It isn't even rendered.

The output in the HTML looks like this:

<textarea name="ctl00$ContentPlaceHolder1$tbTest" 
          id="ctl00_ContentPlaceHolder1_tbTest" rows="5" cols="30">
</textarea>

If you search here on SO for a solution to solve this issue, you get 2 ways suggested:

  • add a (asp:RegularExpression) validator and validate the control
  • add a JavaScript which removes the last insert character in case the limit is reached.

BUT

Most of the answer are previous 2013 and the support of maxlength over all browsers was from 2013 as IE10 was released (reference).

Currently every Browser supports this attribute - test it on your own: https://jsfiddle.net/wuu5wne1/

QUESTION

How can I force ASP.Net to apply this attribute to my multiline textbox?


Solution

  • Welcome to 2020 - this one finally works now on all Browsers

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            tbTest.Attributes.Add("maxlength", "20");
        }
    }