RutTextBox, WebControl de validación del RUT Chileno
En la mayoría de los proyectos web que he desarrollado he tenido que usar el RUT como dato de entidades de mi aplicación, por consecuencia he tenido que realizar la repetitiva y latosa tarea de validarlo, así fue como se me ocurrio crear un web control que encapsule esta funcionalidad y que me permita tener un campo de texto para el rut que simplemente con arrastrarlo desde la barra de herramientas al webform funcione.
Este control se llama RutTextBox, es un textbox (por lo tanto hereda todas las características de este control) con propiedades de validación de rut incluidas, permite ingresar el rut de cualquier forma y el control lo formatea automáticamente con puntos y guión, además permite establecer una serie de propiedades como los mensajes de error (ante un rut no válido), validar en el cliente o no (independiente de esta opción siempre asegura la validación en el servidor), establecer estilos, grupo de validación, etc. Funciona en framework 2.0 en adelante y se puede integrar sin problemas a los controles de validación nativos como el RequiredFieldValidator, ValidationSummary, etc.
Desde acá lo puedes bajar y a continuación les dejo las instrucciones de como instalar y usar.
- Para ocupar de manera mas cómoda el control RutTextBox, lo podemos agregar a la barra de herramientas para ocuparlo como siempre hemos ocupado los controles .NET (Label, DropDownList, etc.), para esto debemos en la barra de herramientas crear una pestaña, click derecho, add tab
- Le damos un nombre al tab y despues hacemos click en elegir items
- Buscamos el archivo Tde.Controles.RutTextBox.dll y aceptamos
- Ya tenemos el control con la banderita chilena en nuestra barra de herramientas, listo para usar. Ahora, para probarlo lo arrastramos a un web form y también arrastramos un button
- Nos vamos a la propiedades del control RutTextbox1 y vemos que en la ficha «varios» tenemos una serie de propiedades
- Podemos modificar las propiedades para por ejemplo establecer los mensajes de error ante un rut no válido ingresado, estilos css, grupo de validación, validar en el cliente o no, etc. En este caso asignamos estilos, indicamos que queremos que se valide en el cliente, asignamos un display al mensaje de error y le damos un grupo de validación
- Y al ejecutar e ingresar un rut erroneo recibimos esto
- Ahora vamos a probar la validación en el servidor, debemos crear un método que maneje el evento ServerValidate, lo creamos haciendo click en el evento en la pestaña de eventos del control RutTextBox1
- Agregamos un poco de código para ocupar los resultados de la validación en el servidor. Vamos a escribir un mensaje ocupando el control label1
- Así queda.
- Ejecutamos nuevamente, ingresamos un rut válido y lo que obtenemos es así
Espero que este control les sea útil, les dejo también el ejemplo usado en la explicación.
Si te gustó el control y quieres hacer un aporte para seguir creando software gratuito, puedes donar el monto que tu quieras via el siguiente botón
Muy bueno amigo! esta espectacular este control !
Excelente control. También en muchas ocasiones es útil contar con un control validador de RUT que funcione al igual que todos los validadores predefinidos de .NET.
En este link explico paso a paso como desarrollar uno, y obviamente, se puede descargar un proyecto con los códigos:
http://www.desytec.com/base-del-conocimiento/14-programacion-de-un-validador-de-rut-en-aspnet.html
Salu2
Jaime
Excelente control! muchas gracias!
Gracias a ustedes! saludos!
grande!!! muy bueno y gracias por tu generosidad
Excelente, super util y necesario en cualquier aplicacion !!…saludos Rodrigo
GRACIAS, TOTALES
Estimad, muchas gracias no sabes cuanto me estube cabezeando con esto.
te lo agradesco
de nada, gracias a ti.
si me pudieras ayudar como agregarlo para usarlo en mi visual studio 2008, para ASP.NET
Hola Joao, para visual studio 2008 los pasos son los mismos.
Muchas gracias compadre! y sobre todo por tu buena voluntad de compartir el control!
de nada! saludos!
Te done un par de luquitas, es poco pero para agradecer la ayuda 🙂
te pasate mil gracias
de nada! saludos.
donde escribo los dos códigos que dejaste? el del LABEL1 Y EL OTRO???
Ese control sirve solo para paginas web; mi consulta es si puedo adecuarlo u obtener las fuentes para un proyecto hecho en visual basic 2010 que ocupa Forms.
Gracias
Javier, debido a la diferencia de arquitecturas pasarlo a winforms seria casi lo mismo que hacerlo desde cero.
Te puedo cooperar dándote una función para validar el rut en visual basic, espero te sirva, aca vá:
Public Function RutDigito(ByVal Rut As Long) As String
Dim Digito As Integer
Dim Contador As Integer
Dim Multiplo As Integer
Dim Acumulador As Integer
Contador = 2
Acumulador = 0
While Rut 0
Multiplo = (Rut Mod 10) * Contador
Acumulador = Acumulador + Multiplo
Rut = Rut \ 10
Contador = Contador + 1
If Contador = 8 Then
Contador = 2
End If
Wend
Digito = 11 – (Acumulador Mod 11)
RutDigito = CStr(Digito)
If Digito = 10 Then RutDigito = «K»
If Digito = 11 Then RutDigito = «0»
End Function
Hola, Rodrigo muy buen trabajo felicitaciones !!! simplifica mucho el trabajo para nosotros los desarrolladores. Quiero aprovechar de hacer una consulta, este control lo puedo utilizar o hacer una emulación (KeyPress) en Asp.net funciona de maravilla al perder el foco, como puedo utilizar este control cuando el usuario valla digitando los digitos del RUT? mi idea es hacer una emulación de jscript. Saludos
Estimado, muy buen control, ayuda bastante. sin embargo, encontre un bug que, al parecer, no sucedia antes, o no se habia dado la oportunidad. Resulta que al usar dos ruttextbox en una misma pagina, al momento que se valida y formatea el rut del segundo ruttextbox, los cambios y validacion se aplican al primero. Alguna forma de abordar esto? intente dejandolo en update panels distintos, con/sin llamadas al javascript, etc, aun asi sigo sin poder fixear el problema. De antemanos, muchas gracias. Saludos
Hola:
El rut textbox esta bueno.. pero tengo un problema, cuando coloco dos de estos texboxt dentro de un formview, cuando ejecuto la pagina e ingreso el rut en el ultimo textbox aparece la corrección aparece en el primero…
un ejemplo para que me entiendan mejor:
rutTextboxCliente:________
TexboxCiudad:________
RutTextboxCheque:_________
Cuando ingreso el rut en el RutTextboxCheque me devuelve los datos validados pero en el rutTextboxCliente.
Que puedo hacer?
Muchas gracias estimado; bastante útil esta rutina de validación, me ahorro unos min. de trabajo.
alguien encontro la solucion para poner dos controles en el mismo form sin que se valide solo el primero?
It’s not my first time to pay a quick visit this site, i am visiting this web site dailly and take pleasant facts from here daily.
wonderful post, very informative. I ponder why the opposite
experts of this sector do not notice this. You must
proceed your writing. I’m confident, you’ve a huge readers’ base already!
Howdy! I just wish to offer you a huge thumbs up for the excellent info you have
right here on this post. I will be returning to your site for more soon.
If you desire to improve your know-how simply keep
visiting this web page and be updated with the latest information posted here.
I just could not depart your website before suggesting that I actually loved
the standard info an individual supply for your guests?
Is going to be back frequently in order to inspect new posts
Incredibly interesting, looking onward to coming back.
Hola, nos podrias ayudar para realizarlo en vb 2010. mi correo es jantileo@hotmail.com, ya que estoy recien operando en 2010, en vb6 ya lo tenia, pero ccambia el lenguaje. gracias.
atento a tus comentarios
When someone writes an article he/she keeps the thought of a user
in his/her mind that how a user can be aware of it.
Thus that’s why this paragraph is amazing. Thanks!
Hola gracias es muy bueno el control, pero te cuento que tengo un problema, que es que cuando uso este control el texto que tiene de validación se pierde con el Load. lo que pasa es que después de llenar el txrut este va a buscar si existe o no en la base de datos, y con esto se pierde el label de validación.
Excelente aporte, muchísimas gracias 🙂
Estimado, el link de descarga no funciona????
I ddo not even know the way I finished up right here, but I assumed this publish was good.
I do not realize who you are but certainly you are going to a famous blogger
for those who aren’t already. Cheers!
This is really attention-grabbing,You are an excessively professional blogger.
I’ve joined your feed and look forward to in search of more of your great post.
Also, I’ve shared your site in my social networks
Useful information. Lucky me I discovered your web site by chance, and I’m stunned why this coincidence didn’t
happened in advance! I bookmarked it.