Foros del Web » Programación para mayores de 30 ;) » .NET »

set focus

Estas en el tema de set focus en el foro de .NET en Foros del Web. hola, saludos a todos los del foro. quería saber si es posible que al hacer un clic en uno de los items de un dropdownlist ...
  #1 (permalink)  
Antiguo 27/06/2005, 14:49
 
Fecha de Ingreso: febrero-2005
Mensajes: 26
Antigüedad: 19 años, 3 meses
Puntos: 0
set focus

hola, saludos a todos los del foro.

quería saber si es posible que al hacer un clic en uno de los items de un dropdownlist (asp.net), pueda poner el foco en un textbox?

además, hay alguna forma de que un imagebutton se "seleccione" al presionar la tecla enter.

gracias.
  #2 (permalink)  
Antiguo 27/06/2005, 15:15
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Para lo primero puedes hacer lo siguiente (algo sencillo):
DropDownList1.Attributes.Add("onchange", "document.getElementById('TextBox1').focus()")

Si deseas poner el foco a otros TextBox, vas a tener que englobarlo dentro de una función, para mayor facilidad...

Para lo segundo coloca el siguiente script en el html de tu página (talvez tenga errores...)
Código:
<script type="text/javascript">
document.onkeypress = function (evt) {
	evt = evt ? evt : event;
	tecla = (document.all) ? evt.keyCode : evt.which;
			
	if (tecla == 13) {
		document.getElementById("ImageButton1").click(); // ImageButton1 representa el ID del boton
	}
}
</script>
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 28/06/2005, 08:30
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 10 meses
Puntos: 0
Para el setfocus, utilizo una funcion armada muy similar a la que se menciona antes y es la siguiente:

Public Sub SetFocus(ByVal ctControl As Control, ByRef pPage As Page)
Dim sbScript As New System.Text.StringBuilder
Dim ClientID As String = ctControl.ClientID

sbScript.Append("<script language='javascript'>")
sbScript.Append("window.scrollBy(0,400);")
sbScript.Append("document.getElementById('")
sbScript.Append(ClientID)
sbScript.Append("').focus();")
sbScript.Append("<" & "/script>")
pPage.RegisterStartupScript("Foco", sbScript.ToString())
End Sub
  #4 (permalink)  
Antiguo 28/06/2005, 08:38
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Y para qué sirve la línea:
sbScript.Append("window.scrollBy(0,400);")
???

Y ésta?
pPage.RegisterStartupScript("Foco", sbScript.ToString())

Podrías explicar de qué forma funciona tu Sub y cómo llamarlo? Que hay que enviarle en el parametro pPage?
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 28/06/2005, 09:08
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Según lo entiendo yo, la función está dentro de un modulo o clase y es referenciada desde cualquier página, por ejemplo

private sub dropdownlist1_SelectedIndexChanged(byval sender as object,byval e as eventargs) handles dropdownlist1.SelectedIndexChanged
Modulo.SetFocus(textbox1, me)
end sub

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

lo que hace es llamar a la función en el cliente desde el servidor, bien sea en un load o en un postback como el ejemplo que he puesto.

sbScript.Append("window.scrollBy(0,400);")

Es una función javascript para situar el scroll,

ya sé que no me has preguntado a mi, pero tengo un modulo para funciones javascript de ese tipo.
  #6 (permalink)  
Antiguo 28/06/2005, 09:12
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Gracias Jose_minglein2.

Esto es un foro no? Puede responder quien lo sepa, a mi modo de verlo. Si alguien discrepa de lo que tu dices ya avisará, y si no, se lo quedará pa él

Pero sigo dudando de la línea del scroll... Eso es necesario para colocar el foco en un control?
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 28/06/2005, 09:35
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 10 meses
Puntos: 0
Estoy totalmente de acuerdo con ambos en cuanto a sus respuestas, es un foro y cuanta mas gente responda, mas opiniones se tendrán.

En cuanto a la respuesta que dio Jose Minglein2 estoy de acuerdo, es mas, lo invoco de la misma manera. El scroll sinceramente no recuerdo porqué lo tengo puesto, pero si lo deseas quitaselo. Saludos.
  #8 (permalink)  
Antiguo 28/06/2005, 09:56
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Lo del scroll como te dije es para situar éste, porque creo que hay algunos navegadores que aunque un elemento tenga el foco no lo ves porque no está dentro del area del cliente inicialmente (aun despues de un postback) en 0,0 (p. ej. que esté abajo del todo), no se si me explico. Yo lo que haría sería indicar éste también como variable, p. ej.


Public Sub SetFocus(ByVal ctControl As Control, ByRef pPage As Page, byval pos as integer)
Dim sbScript As New System.Text.StringBuilder
Dim ClientID As String = ctControl.ClientID

sbScript.Append("<script language='javascript'>")
sbScript.Append("window.scrollBy(0," & pos &";")
sbScript.Append("document.getElementById('")
sbScript.Append(ClientID)
sbScript.Append("').focus();")
sbScript.Append("<" & "/script>")
pPage.RegisterStartupScript("Foco", sbScript.ToString())
End Sub

así puedes llamar a la función y colocar el scroll donde desees.
  #9 (permalink)  
Antiguo 28/06/2005, 10:04
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
OK. Ahora si.
__________________
..:: moNTeZIon ::..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:48.