Mensaje dentro de AJAX y javascript

Establecer foco dentro de updatepanel

Responder 
#1 - 06/07/2007 16:46:26 Reporta abuso | Link Permanente
Joaquín
Usuario no registrado
Establecer foco dentro de updatepanel

Responder Citar
Hola a todos.

Tengo una página con un updatepanel con controles textbox dentro. Tengo establecido el autopostback de un textbox a true para cuando cambie su valor se llame al servidor para recargar unos valores de otros textboxes. El problema es que al actualizar esos campos el foco se pierde.

He probado al final del evento textchanged del control a escribir txtboxsiguiente.focus, pero no hace nada.

¿Como puedo establecer el foco al control que quiero?

Saludos
Joaquín
Volver arriba

Respuestas
Mostrar de en 15
#2 - 25/06/2009 19:09:57 Reporta abuso | Link Permanente
nn
Usuario no registrado
RE: Establecer foco dentro de updatepanel

Responder Citar

Tradicionalmente cuando queremos dirigir el foco hacia un control hacemos esto:

Control.focus();

PERO si trabajamos con ASP.NET AJAX con un ScriptManager y unUpdatePanel al hacer postback asincrono el UpdatePanel , pierde elfoco, para que esto no ocurra insertamos esta linea de codigo paralograr tener el foco donde queramos.

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);

scriptManager.SetFocus(CONTROL);

CONTROL = Textbox(Caja de Texto)

Espero los haya ayudado , suerte con sus desarrollos.

PS: el metodo.SetFocus(CONTROL) , tiene como paramentro cualquier tipo de CONTROL ASP.NET asi que podemos usar cualquier CONTROL

Volver arriba

#3 - 11/10/2008 0:46:54 Reporta abuso | Link Permanente
SMER SOFT
Usuario no registrado
RE: Establecer foco dentro de updatepanel

Responder Citar
PUES MIRA ES SENCILLO

UTILIZAS TU SCRIPTMANAGER KE TIENES EN LA PAGINA PARA PODER ACCESAR AL CAJA DE TEXTO KE NECESITAS KE TENGA EL FOCO

TE DEJO UNAS LINEAS

SCRIPTMANAGER =  SCRIPTMANAGER.GetCurrent(ME.page)
scriptmanager.SetFocus(textbox)
Volver arriba

#4 - 20/08/2007 8:31:24 Reporta abuso | Link Permanente
Joaquín
Usuario no registrado
RE: Establecer foco dentro de updatepanel

Responder Citar
El tema es que tengo código en el textchanged de dos textbox en la página que rellenan datos de otros controles de la página y cuando hacen esto el foco se pierde y no sigue donde el usuario lo dejó.

Por eso intento en el código textchanged hacer un focus al siguiente control, pero me encuentro con la pega de que si el usuario ha pasado varios controles mientras se recargaban los controles, entonces el foco le manda para atrás.
Volver arriba

#5 - 23/07/2007 18:36:09 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
166 posts en ajax y javascript
1777 posts en todos los foros
RE: Establecer foco dentro de updatepanel

Responder Citar
Hola,

en mi opinión estás cometiendo el error de pensar demasiado por el usuario... la página debe estar diseñada para que el usuario sepa donde tiene que ubicarse, y no obligarle a estar en un sitio u otro.

Por otra parte, si quieres hacer lo que comentas, no tienes más que asignar el foco únicamente dentro del Page.IsPostBack.
Volver arriba

#6 - 20/07/2007 18:03:37 Reporta abuso | Link Permanente
Joaquín
Usuario no registrado
RE: Establecer foco dentro de updatepanel

Responder Citar
Esto me ha traído un problema secundario, cuando establezco el foco en un control al salir de otro que hace una llamada al servidor, el usuario puede que haya cambiado de control y el efecto es raro al recibir la respuesta del servidor y cambiarle el foco de sitio.

Lo que no se es dejar el foco donde el usuario esté
Volver arriba

#7 - 10/07/2007 9:39:24 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
166 posts en ajax y javascript
1777 posts en todos los foros
RE: Establecer foco dentro de updatepanel

Responder Citar
Ya, ya imaginaba que usabas ASP.NET AJAX

Lo del método setfocus no lo conocía (no lo había necesitado), de modo que gracias!!
Volver arriba

#8 - 09/07/2007 9:43:48 Reporta abuso | Link Permanente
Joaquín
Usuario no registrado
RE: Establecer foco dentro de updatepanel

Responder Citar
Hola. Muchas gracias por la respuesta pronta respuesta

Utilizo Ajax .net en lugar de Atlas y al final he encontrado la manera de hacerlo, que consiste en usar el método setfocus del objeto scriptmanager
Volver arriba

#9 - 09/07/2007 8:51:51 Reporta abuso | Link Permanente
subgurim
Fecha de registro: 01/12/2006
1 post en este tema
166 posts en ajax y javascript
1777 posts en todos los foros
RE: Establecer foco dentro de updatepanel

Responder Citar
Hola, es una buena pregunta.

Prueba esto (http://www.codeproject.com/useritems/AtlasUpdatepanelFocus.asp) y coméntanos qué tal!

Saludos.
Volver arriba
Mostrar de en 15

Hospedado en domitienda