Link to home
Start Free TrialLog in
Avatar of MikeMCSD
MikeMCSDFlag for United States of America

asked on

MultiLine textbox -want to limit to 26 characters

I have a MultiLine textbox in a DataGrid that I want to limit to 26 characters max.

The MaxLength="26" property does not work for MulitLine textboxes.
I'm trying to use a Validator but it is not working:

<asp:TemplateColumn>
<ItemTemplate>
...........

<asp:TextBox ID="txtEng" TextMode="MultiLine" Rows="3" Width="245"
  Runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="regex"
  ControlToValidate="txtEng"
  ValidationExpression="^{1,26}$"
  Text="Engravings can only be a maxiumum of 26 characters"
  Display="Dynamic"
  ErrorMessage="Engravings can only be a maxiumum of 26 characters"
  Runat="server" />

Any ideas on how I can limit the text to 26 characters max?  thanks
SOLUTION
Avatar of aki4u
aki4u

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of aki4u
aki4u

asp:TextBox ID="txtEng" TextMode="MultiLine" Rows="3" Width="245"
  Runat="server" onkeyup="checkLength(this,26)"></asp:TextBox>
or you could use all in one line...like this:

onkeyup ="if(this.value.length>26) this.value=this.value.substring(0,26)"

you can also use "onblur" event
Avatar of MikeMCSD

ASKER

thanks ak . . that works expect for when
the enter key is pressed. example:
Dear John
blahab blah
....
then it limits the number of characters to less than 18 or so.

this multiline texbox is a pain!
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
@MikeMCSD have you tried my solution, I am pretty sure it will solve your problems even when a user presses the enter key.
thanks, just tried it pt . . if I type in:
Dear John
Thanks
Love Mary
...which is 24 characters, it gives the message
"Exceeded 26 Characters!"
I think maybe it's including the enter key as a character . .
I was going to mention that it probably counts the enter key as one of the characters.  This, however, is probably the closest you are going to get witht he Regular Expression Validator.  The enter key has to count as something.
Instead of using a regular expression validator, use a custom validator that checks the length of the text.

Private Sub cvEng_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles cvEng.ServerValidate
   if (txtEng.text.length > 26)
     args.IsValid = false;
   else
     args.IsValid = true;
   end if
End Sub
I'll have to come back to this later. thanks for your help