Inicio > ASP.NET > RutTextBox, WebControl de validación del RUT Chileno

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.

  1. 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
  2. Le damos un nombre al tab y despues hacemos click en elegir items

  3. Buscamos el archivo Tde.Controles.RutTextBox.dll y aceptamos
  4. 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
  5. Nos vamos a la propiedades del control RutTextbox1 y vemos que en la ficha «varios» tenemos una serie de propiedades
  6. 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
  7. Y al ejecutar e ingresar un rut erroneo recibimos esto
  8. 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
  9. 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
  10. Así queda.
  11. 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

Donar

  1. Lucas
    May 13, 2010 a las 3:21 pm

    Muy bueno amigo! esta espectacular este control !

  2. May 14, 2010 a las 6:47 pm

    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

  3. May 17, 2010 a las 2:25 am

    Excelente control! muchas gracias!

  4. May 17, 2010 a las 1:50 pm

    Gracias a ustedes! saludos!

  5. jose
    junio 17, 2010 a las 9:34 pm

    grande!!! muy bueno y gracias por tu generosidad

  6. julio 12, 2010 a las 6:26 pm

    Excelente, super util y necesario en cualquier aplicacion !!…saludos Rodrigo

  7. Osvaldo esteban
    julio 27, 2010 a las 11:38 am

    GRACIAS, TOTALES

  8. Felipe Gonzalez
    septiembre 13, 2010 a las 9:42 am

    Estimad, muchas gracias no sabes cuanto me estube cabezeando con esto.
    te lo agradesco

  9. JOAO
    agosto 17, 2011 a las 8:30 pm

    si me pudieras ayudar como agregarlo para usarlo en mi visual studio 2008, para ASP.NET

  10. Chepe
    septiembre 29, 2011 a las 9:53 am

    Muchas gracias compadre! y sobre todo por tu buena voluntad de compartir el control!

    • septiembre 29, 2011 a las 10:31 am

      de nada! saludos!

      • Chepe
        octubre 1, 2011 a las 7:27 pm

        Te done un par de luquitas, es poco pero para agradecer la ayuda 🙂

  11. Luisa
    noviembre 23, 2011 a las 6:54 am

    te pasate mil gracias

  12. absurdo
    diciembre 19, 2011 a las 10:22 pm

    donde escribo los dos códigos que dejaste? el del LABEL1 Y EL OTRO???

  13. Javier Teran
    May 19, 2012 a las 5:04 am

    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

    • May 19, 2012 a las 12:29 pm

      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

  14. agosto 17, 2012 a las 9:40 am

    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

  15. Francisco Carrasco
    septiembre 21, 2012 a las 11:35 am

    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

  16. yanet
    noviembre 26, 2012 a las 3:27 pm

    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?

  17. febrero 25, 2013 a las 11:52 am

    Muchas gracias estimado; bastante útil esta rutina de validación, me ahorro unos min. de trabajo.

  18. Angie
    marzo 14, 2013 a las 11:07 am

    alguien encontro la solucion para poner dos controles en el mismo form sin que se valide solo el primero?

  19. abril 13, 2013 a las 7:54 pm

    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.

  20. abril 20, 2013 a las 5:29 am

    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!

  21. abril 22, 2013 a las 2:44 am

    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.

  22. May 1, 2013 a las 8:23 pm

    If you desire to improve your know-how simply keep
    visiting this web page and be updated with the latest information posted here.

  23. May 19, 2013 a las 2:31 am

    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

  24. May 20, 2013 a las 9:41 am

    Incredibly interesting, looking onward to coming back.

  25. jose antileo
    junio 3, 2013 a las 10:39 pm

    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

  26. junio 29, 2013 a las 10:33 am

    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!

  27. septiembre 21, 2014 a las 10:09 pm

    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.

  28. marcela
    abril 4, 2015 a las 12:54 am

    Excelente aporte, muchísimas gracias 🙂

  29. Patricio
    febrero 23, 2018 a las 4:24 pm

    Estimado, el link de descarga no funciona????

  30. octubre 16, 2018 a las 11:10 am

    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!

  31. octubre 18, 2018 a las 11:27 am

    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

  32. noviembre 13, 2018 a las 10:24 am

    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.

  1. enero 5, 2011 a las 3:13 pm

Replica a Rodrigo Olivares Cancelar la respuesta