Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/10/2009, 01:32
Avatar de Fuzzylog
Fuzzylog
 
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Bloquear "tildes y Ñ o ñ" en un textbox o datagridview

Tienes que tener en cuenta que windows funciona contra el servidor. Si quieres hacer el control por carácter ingresado debes hacerlo con javascript.

Si quieres hacerlo contra el servidor, tienes una opción engorrosa en la cantidad de cálculo, que aparece descrita aquí:

http://www.forosdelweb.com/f29/valid...bforms-730716/

Básicamente cotejar char a char, tienes que definir que quieres que analice para cada char que quieras controlar, es decir if(char='Ñ' || char='ñ' || char='á' || char='Á' ... etc) { //no validar }

La otra opción es usar expresiones regulares. De una forma como esta...

//Validación del formato de nombre usando una regular expression. OJO. Incluye en la validación [ñáéíóú] y especios en blanco.
public static Boolean validarNombre(String nombre)
{
string expresion = "[a-z]?[ñáéíóú]?[\\s]?";

if (Regex.IsMatch(nombre, expresion))
{
if (Regex.Replace(nombre, expresion, String.Empty).Length == 0)
{ return true; }
else
{ return false; }
}
else
{
return false;
}
}

Y para el validator

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
//Validación de nombre de persona utilizando una expresión regular
string nombre = TextBox1.Text.ToLower().Trim();
if (!validarNombre(nombre))
{
TextBox1.Text = "Error";
args.IsValid = false;
}
else { }
}

//Si lo que quieres es que no valide ñ ni tildes, tienes que retirar de la expresión regular esa parte. Si quieres que tampoco valide espacios en blanco intermedio, sólo te quedaría así:
string expresion = "[a-z]?";