Opinión, Discusión, Comentarios
  Search 
Saturday, October 25, 2014 ..:: ForosDiscusion ::.. Register  Login
Foros MUGPERU Minimize
Subject: Obtener el foco en un textbox en NET??
Prev Next
You are not authorized to post a reply.

Author Messages
dguizmo
Posts:34

04/08/2005 08:08 AM  

Buenos dias comuna!!!!

Tengo un un control textbox del lado del servidor y lo que quiero que obtenga el foco cuando le doy a un buttom es decir  lo que quiero hacer es que el cursor se vaya a un textbox ????

Es posible esto?

 

   Gracias por su ayuda

richie_crazy57
Posts:203

04/08/2005 11:20 AM  

Hola, dguizmo:

 

Claro que se puede obtener el foco       en un control. Para esto hacemos uso de nuestro amigo JavaScript J. A continuación tienes un pequeño bloque de JS que te permititá establecer el foco en un control:

 

var control = document.getElementById();
if( control != null ){ control.focus(); }

 

Claro que se debe reemplazar por el nombre del control.

 

Si se tratara de un control HTML simple, podrías establecer en sus propiedades que cuando se le haga clic, establezca el foco en un control (txtNombre, en este caso) de la siguiente manera:

 

INPUT TYPE=BUTTON OnClick="javascript:txtNombre.focus();" VALUE="Ir a Nombre"

 

Sin embargo, los controles del lado del servidor manejan sus eventos no mediante JavaScript, sino mediante código del lado servidor (C#, VB.NET). Entonces, lo que haremos será utilizar el código del lado servidor para inyectar el código JavaScript necesario para establecer el foco en el control. J

 

Las páginas de ASP.NET contienen un método nombrado RegisterStartupScript. Mediante la invocación a Page.RegisterStartupScript, podemos inyectar un bloque de código script que se ejecute precisamente antes que la página sea interpretada por el browser. Los argumentos que necesitamos pasar a RegisterStartupScript son un nombre único para el bloque de script y un bloque de script correctamente formateado.

 

Para solucionar este problema  puedes definir un procedimiento nombrado SetFocus que acepte como parámetro la cadena del nombre del control que recibirá el foco.

 

Como puedes apreciar en el archivo SetFocus.txt de la descarga, el método SetFocus inserta el nombre del control que obtendrá el foco en la secuencia JS previamente formateada y Page.RegisterStartupScript insertará el bloque de script en la página. La función Chr(34) inserta las comillas dobles (") necesarias para el bloque JS.

 

Todo lo que necesitarás será llamar a SetFocus el code_behind de la página antes de realizar el post-back.

 

El método manejador del evento Click del botón que establecerá el foco en el control, será más o menos así:

 

Protected Sub SetFocusButton_Click(ByVal sender As Object, ByVal e As EventArgs)

 

    SetFocus(TextBox2.ClientID)

 

End Sub

 

Entonces, si quisieras establecer el foco en un control llamado TextBox2 (como en el ejemplo), el bloque de código JS que te inyectaría el método quedaría como en el archivo FocusScript.txt de la descarga.

 

Para descargar el zip con los 2 archivos (SetFocus.txt y FocusScript.txt) haz clic aquí.

 

Espero que encuentres útil mi aporte. Hasta la próxima.

 

Я!©ђ!Є ©Я∆ZΨ

jrodriguez2003
Posts:23

04/08/2005 03:35 PM  

Hola, lo que debes hacer es dentro del evento click de tu boton llama a la propiedad focus de tu TextBox y ponle true

Salu2

Pp

richie_crazy57
Posts:203

04/08/2005 04:19 PM  

Hola, jrodriguez2003:

 

Disculpa, pero el control del lado servidor TextBox (System.Web.UI.WebControls.TextBox) no expone ninguna propiedad Focus. Es más, me parece que el manejo del foco es una de las carencias de los controles web de ASP .NET en general.

 

Я!©ђ!Є ©Я∆ZΨ

dguizmo
Posts:34

05/08/2005 10:01 AM  

Gracias Richie?

Agregue el codigo que es parecido a esto

Private Sub SetFocus(ByVal ctControl As Control)

Dim sbScript As New System.Text.StringBuilder

Dim ClientID As String = ctControl.ClientID

sbScript.Append("")

RegisterStartupScript("Foco", sbScript.ToString())

End Sub

Pero obtengo el FOCO al Inicio y realmente queiro obtenre al final del texto ingresado COMO haria esto????estoy buscando en internet preo o encuentro nada que me ayude

  Muchas gracias desde ya por tu ayuda

 

 

 

 

You are not authorized to post a reply.
Forums > Temas de Interés > Construcción de Aplicaciones Web con ASP.NET > Obtener el foco en un textbox en NET??



ActiveForums 3.7
        
Copyright 2001-2014 MUGPERU   Terms Of Use  Privacy Statement