Você já tentou utilizar o MaxLength do TextBox quando esse esta com TextMode igual a MultiLine?
No TextBox o TextMode é uma propriedade na qual definimos o tipo de campo será ele. Existem 3 tipos:
- SingleLine: após renderizado o HTML, será gerado um simples input do tipo Text;
- Password: será gerado um input do tipo Password;
- MultiLine: diferente dos anteriores será gerado um TextArea e esse não possui a propriedade MaxLength.
Para que possamos contornar essa situação, poderemos utilizar JavaScript para limitar a quantidade de caracteres digitados no TextBox.
Essa dica pode ser utilizada também em projetos ASP.NET com VB.NET ou até mesmo aplicá-las em projetos onde será desenvolvido com puro HTML, basta nesse caso fazer algumas adaptações.
Primeiro adicionaremos ao nosso Page_Load da página uma linha onde será incluído o atributo maxlength ao nosso TextBox com o valor definido.
// Inclui o atributo maxlength TextBox1.Attributes.Add("maxlength", "400"); // Inclui o atributo onkeyup TextBox1.Attributes.Add("onkeyup", "return ismaxlength(this);");
Após isso, adicionaremos então nosso JavaScript a página. Essa JavaScript será o responsável em limitar o numero de caracters no TextBox.
<script type="text/javascript"> function ismaxlength(obj) { var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "" if (obj.getAttribute && obj.value.length > mlength) { obj.value = obj.value.substring(0, mlength) } } </script>
Vale lembrar que não é necessário utilizar esse método quando o TextMode for do tipo SingleLine ou Password pois o MaxLength funciona nativamente em ambos.
Espero que essa dica seja útil.
Abraço e até a próxima.