En el Ajax Control Toolkit de ASP.NET, hay un control llamado FilteredTextBoxExtender
que sirve para filtrar los caracteres que se pueden ingresar en un TextBox
. Esto es útil, por ejemplo, para permitir únicamente el ingreso de números si estamos capturando un código postal mexicano.
Bueno, estaba usándolo en un TextBox
con la propiedad TextMode
establecida en MultiLine
, lo que en HTML
se despliega como un textArea
, una caja de texto con múltiples líneas.
Esta es la definición de mi caja de texto y el control de filtrado:
<asp:TextBox
ID="Tags"
runat="server"
TextMode="MultiLine"
Width="200px"
Height="150px">
</asp:TextBox>
<cc1:FilteredTextBoxExtender
ID="Tags_FilteredTextBoxExtender"
runat="server"
Enabled="True"
TargetControlID="Tags"
ValidChars="abcdefghijklmnopqrstuvwxyz1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ">
</cc1:FilteredTextBoxExtender>
Como puedes ver, estoy permitiendo la entrada de letras mayúsculas, minúsculas, números y espacios. Pero como se trata de una caja de texto con míltiples líneas, obviamente quiero que se permita teclear saltos de línea cuando el individuo presione la tecla enter o intro.
Este caso es truculento, porque no puedes hacerlo en la página aspx
, lo tienes que hacer en el código de servidor, de esta forma:
Tags_FilteredTextBoxExtender.ValidChars = Tags_FilteredTextBoxExtender.ValidChars & vbCrLf
Como sabrás, vbCrLf
significa un salto de línea en Visual Basic, y lo que hace esa línea es añadirlo a los caracteres válidos.
¡Medio truculento pero funciona!