sábado, 20 de octubre de 2007

desplazarse con ENTER en asp.net



Este ejemplo va para darle mas facilidades al usuario final y un poco tratando de que nuestras aplicaciones Web se parezcan alas aplicaciones Windows con todas las funcionalidades que nos brinda. Para pasar de un control a otro pulsando la tecla enter

Función que nos permite pasar de un control ah otro



Aquí lo k hacemos es agregar la funcion de javascript a nuestros controles del lado del servidor.

For Each Con As Control In Page.FindControl("Form1").Controls
If (TypeOf Con Is TextBox) Then
CType(Con, TextBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is DropDownList) Then
CType(Con, DropDownList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is RadioButtonList) Then
CType(Con, RadioButtonList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
'ElseIf (TypeOf Con Is CheckBox) Then ' para los CheckBox
' CType(Con, CheckBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
'ElseIf (TypeOf Con Is CheckBoxList) Then 'para los CheckBoxList
' CType(Con, CheckBoxList).Attributes.Add("onKeyDown", "SiguienteObjeto();")
' si hay controles de otro tipo solo agregar como los ejemplos anteriores

End If
Next





>
descargar fuente PruebaEnterWeb.rar


espero haver sido de ayuda.

Compartir

9 comentarios:

Alexander dijo...

Hola que tal muy buen articulo y me funciona muy bien, solo una pregunta y no se si lo has hecho, yo lo trate de adaptar a una pagina ligada a un masterpage y ahi no me funciona ya que me tira el error Object reference not set to an instance of an object. me gustaria contactarte mi mail es alexander-net@hotmail.com, Gracias y Saludos

Anónimo dijo...

Amigo yo tambien tengo el mismo problema si tienes la solucion me lo podrias enviar a mi mail jdongo@cassinelli.com
Gracias

JhofranSoft dijo...

bien para k funcione en una masterPage sria las siguientes modificaciones el codigo javascript seria en el masterPage y la siguiente funcion en la pagina hija..

Private Sub SiguienteObjeto()
For Each Con As Control In Form.FindControl("ContentPlaceHolder1").Controls 'ContentPlaceHolder1 es del id del contentplaceholder de la master page
If (TypeOf Con Is TextBox) Then
CType(Con, TextBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
ElseIf (TypeOf Con Is CheckBox) Then
CType(Con, CheckBox).Attributes.Add("onKeyDown", "SiguienteObjeto();")
End If
Next
End Sub

Anónimo dijo...

Hola, ti pekeño codigo es muy util incluso en Master page muchas gracias...

Arturo dijo...

hola... es bueno el codigo tambien trabajo en un master page, pero sabes
que los textbox los tengo dentro de un UpdatePanel y al momento de recorrer el For no encuentra el control TextBox

me podrias ayudar y decirme como podria validar controles dentro del updatepanel, gracias....

Anónimo dijo...

GARY:
Holas tengo un problema en un mantenimiento, se trata de esto: En un formulario tengo un un TextBox, un Button y un GridView, el GridView contiene CommandField (Editar, Eliminar) al ejecutar el formulario me carga la lista de los empleados en el GridView, de forma paginada; si quiero buscar un empleado ingreso el apellido del empleado en el TextBox y presiono el Button "Buscar" y me lista los empleados con dicho apellido ingresado en el GridView selecciono selecciono "Editar" y es ahy donde me sale el error (cuando presiono editar me vuelve a listar todos los empleados) y no me muestra el registro q quiero editar en el GridView

Anónimo dijo...

hola muy bueno tu articulo pero sucede q no me funciona en un updatepanel. gracias d antemano.

te dejo mi direcion por si desides contactarme chiverin@hotmail.com

JhofranSoft dijo...

aqui les dejo para que funcione con master page con updatepanel o con los dos.... http://es.geocities.com/axmj_21/PruebaEnterWeb01.zip

JhofranSoft dijo...
Este comentario ha sido eliminado por el autor.