Buenas fredy:
Respecto a tu 2º problema quizás te pueda ayudar, debes seguir éstos pasos:
- En las propiedades del CustomValidator seleccionar el campo que quieres validar en
ControlToValidate.
- Otra propiedades que conviene cambiar es
ErrorMessage, podrías poner algo así como "DNI incorrecto".
- En el evento
ServerValidate del CustomValidator debes realizar las comprobaciones sobre el parámetro
args (que es el objeto a validar). Por ejemplo una posible validación en tu caso es evitar que el DNI difiera de 8 cifras:
Código:
double dni = Convert.ToDouble(args.Value);
if (dni.ToString().Length != 8)
args.IsValid = false;
else
args.IsValid = true;
En el momento en el que la propiedad IsValid sea false, el CustomValidator mostrará su ErrorMessage ("DNI incorrecto"). Puedes realizar otras validaciones, como que el textbox donde se introducirá el DNI no esté vacío (para esto es mejor el RequiredFieldValidator), o que en vez de 8 cifras sean 9 las que deba meter y la última sea un carácter, eso ya queda a tu imaginación
Un saludo.