Foros del Web » Programando para Internet » ASPX (.net) »

Acertijo: Traspaso de datos entre Ventanas

Estas en el tema de Acertijo: Traspaso de datos entre Ventanas en el foro de ASPX (.net) en Foros del Web. Que tal amigos, tengo el siguiente acertijo, Tengo una pagina aspx dentro de un MasterPage, esta pagina aspx tiene un boton, que al hacer click ...
  #1 (permalink)  
Antiguo 07/03/2006, 09:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Acertijo: Traspaso de datos entre Ventanas

Que tal amigos, tengo el siguiente acertijo, Tengo una pagina aspx dentro de un MasterPage, esta pagina aspx tiene un boton, que al hacer click despliega un pop-up hecho en Javascript el cual sirve para buscar datos en la BD. El Pop-up contiene un gridview con los datos solicitados, al seleccionar alguna fila almaceno el valor en un label que esta oculto, luego con un boton que tiene que enviar el dato a la pagina aspx, a qui viene el problema: Como puedo enviar el valor del registro seleccionado a la pagina aspx (que es la padre de esta) y asi me pueda mostrar en el aspx el detalle del registro seleccionado en el pop-up????.

No importa en el lenguaje que sea la solucion, pero ojala me pudiesen ayudar amigos, un saludo y de antemano gracias!
  #2 (permalink)  
Antiguo 07/03/2006, 10:53
 
Fecha de Ingreso: abril-2005
Ubicación: España - Madrid
Mensajes: 236
Antigüedad: 19 años
Puntos: 2
por ejemplo una variable se session, aunque te recomiendo que no abuses mucho de ello ya que no es la mejor opcion.
  #3 (permalink)  
Antiguo 07/03/2006, 11:37
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Cita:
Iniciado por wilwas
por ejemplo una variable se session, aunque te recomiendo que no abuses mucho de ello ya que no es la mejor opcion.
El problema es que puedo setear una variable session con ese valor y cerrar el pop-up, pero no se me va a refrescar la pagina padre para que salga el valor seleccionado en el pop-up. Lo malo que eso tambien es parte del problema.
  #4 (permalink)  
Antiguo 07/03/2006, 12:44
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Lee un poco más sobre javascript (hint: window.opener es una referencia a la página padre).

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 08/03/2006, 00:47
 
Fecha de Ingreso: abril-2005
Ubicación: España - Madrid
Mensajes: 236
Antigüedad: 19 años
Puntos: 2
Puedes hacer lo que dice xknown, desde tu pop up puedes hacer un window.opener.__doPostBack('evento','');window.clo se.

De esta forma podras recoger el valor de la variable cuando se carge de nuevo la pagina padre.

Ciao
  #6 (permalink)  
Antiguo 09/03/2006, 08:10
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 4 meses
Puntos: 1
Hola,

tengo exactamente el mismo problema y no entiendo muy bien la última respuesta.

El "window.opener", es código de cliente, ¿no se puede hacer algo parecido en servidor?. El asunto esta que no puedes referenciar un textbox de servidor <asp:TextBox> desde JavaScript.

Un saludo
__________________
ThE MaTriX HaS YoU
  #7 (permalink)  
Antiguo 09/03/2006, 13:20
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Cita:
Iniciado por TomaHawkk
El "window.opener", es código de cliente, ¿no se puede hacer algo parecido en servidor?
Si, pero eso incluye hacer postbacks.
Cita:
El asunto esta que no puedes referenciar un textbox de servidor <asp:TextBox> desde JavaScript.
De dónde sacas eso?

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #8 (permalink)  
Antiguo 09/03/2006, 17:59
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola

Desde la ventana hija puedes hacer referencia a un control de la pagina padre ejemplo:

opener.Form1.txtispopup.value="disable";

donde txtispopup es un control de servidor

o

tambien hacer referencia a una funcion:



opener.GetEnginePopupLoad(value1)



Nota: Codigo javascript

saludos
  #9 (permalink)  
Antiguo 10/03/2006, 08:10
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Estimados amigos, muchas gracias por sus respuestas me ayudaron mucho al encontrar la respuesta exacta de esto, al fina lo solucione de esta forma:

'Asigno el valor a una session, la que luego sera rescatada en la pagina padre
session("Valor") = "valorx"

'Aqui genero un script para que recarge la pagina y luego se cierre el pop-up

dim Script= "<scriptlanguage= 'JavaScript'>window.opener.location.href = window.opener.location.href;window.close();</script>"
Page.RegisterStartupScript("LlamaPadre", strScript)

....despues en la pagina padre se recarga y rescato el valor de la session

muchas gracias por sus aportes, chau!
  #10 (permalink)  
Antiguo 10/03/2006, 08:52
Avatar de shinblood  
Fecha de Ingreso: diciembre-2003
Ubicación: lima
Mensajes: 214
Antigüedad: 20 años, 4 meses
Puntos: 1
Si solo vas a trabajar con IE hubieras usado showModalDialog es muy comodo a la hora de tarbajar con popups.

http://msdn.microsoft.com/library/de...odaldialog.asp

saludos
__________________
saludos :adios:
  #11 (permalink)  
Antiguo 16/03/2006, 07:09
 
Fecha de Ingreso: marzo-2006
Mensajes: 11
Antigüedad: 18 años, 1 mes
Puntos: 0
Sonrisa No se que hago mal

Cita:
Iniciado por Nacho_Rk
Estimados amigos, muchas gracias por sus respuestas me ayudaron mucho al encontrar la respuesta exacta de esto, al fina lo solucione de esta forma:

'Asigno el valor a una session, la que luego sera rescatada en la pagina padre
session("Valor") = "valorx"

'Aqui genero un script para que recarge la pagina y luego se cierre el pop-up

dim Script= "<scriptlanguage= 'JavaScript'>window.opener.location.href = window.opener.location.href;window.close();</script>"
Page.RegisterStartupScript("LlamaPadre", strScript)

....despues en la pagina padre se recarga y rescato el valor de la session

muchas gracias por sus aportes, chau!

Hago lo mismo que tu,

dim strScript= "<scriptlanguage= 'JavaScript'>window.opener.location.href = window.opener.location.href;window.close();</script>"
Page.RegisterStartupScript("LlamaPadre", strScript)

y a dar al boton donde tengo el codigo, esto me lo escribe en la pagina aspx, tal cual, que hago mal??

He estado buscando la para este mismo problema, y a ver si esto funciona.

Salu2
  #12 (permalink)  
Antiguo 16/03/2006, 07:27
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Mira, si es que copiaste tal cual el texto que escribi, yo cometi un error al no separar: "<scriptlanguage= 'JavaScript'>", deberia ser "<script language= 'JavaScript'>".

Por otra parte gracias a Shinblood, bueno el aporte de showModalDialog
  #13 (permalink)  
Antiguo 30/03/2006, 13:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 123
Antigüedad: 19 años, 1 mes
Puntos: 1
como puedo rescatar el nombre de la pagina padre ?
ya que la ventana la llamo de 2 formularios distintos...
gracias

dim Script= "<scriptlanguage= 'JavaScript'>window.opener.location.href = window.opener.location.href;window.close();</script>"
Page.RegisterStartupScript("LlamaPadre", strScript)
  #14 (permalink)  
Antiguo 05/04/2006, 10:09
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 18 años, 1 mes
Puntos: 0
Exclamación Refrescar con frames

Intento hacer algo parecido pero al cerrar la ventana emergente y refrescar la ventana padre se me refresca solo uno de sus frames , el frame de abajo y necesito refrescar ambos.

<script language="JavaScript">
<!--
function refreshParent() {

window.opener.location.href = window.opener.location.href;

if (window.opener.progressWindow)

{
window.opener.progressWindow.close()
}
window.close();
;
}
//-->
</script>
  #15 (permalink)  
Antiguo 07/04/2006, 09:43
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 4 meses
Puntos: 0
¡Hola!

La verdad no he tenido la necesidad de hacer que el usuario elija un valor de un popup y recogerlo en otra página. Pero me parece un buen aporte el de ustedes.

Ahora bien, existe otra forma de recoger datos de un formulario a otro. Y sin necesidad de usar objetos session. Imagínense que tenga yo una página A.aspx y otra B.aspx. En la página A.aspx tengo un linkbutton o botón que al momento de dar clic hace un server.transfer(B.aspx, true) ' Pongo true para que pase los valores de los controles a la otra página.

Entonces, en el load de la página B.aspx hago referencia a la página anterior y recojo los valores. Sería algo como esto:
Código:
 Pagina = CType(HttpContext.Current.Handler, Page)
dblValor = CType(Pagina.FindControl("txtBceLibros"), TextBox).Text
strCuenta = CType(Pagina.FindControl("cobCuenta"), DropDownList).SelectedValue
Fíjense, el uso abusivo de objetos session puede hacer colapsar un servidor en algún momento, de acuerdo a la demanda de una página. Para casos en los cuales se necesita pasar datos de una página a otra solamente, esto les podría servir.
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca

Última edición por siannah; 07/04/2006 a las 09:56
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 20:01.