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

Enviar datos desde un dropdownlist a un popup

Estas en el tema de Enviar datos desde un dropdownlist a un popup en el foro de ASPX (.net) en Foros del Web. Hola. Primero que todo doy las gracias por esta página, ya que me ha sacado de muchas dudas. Tengo un gran problema y llevo mucho ...
  #1 (permalink)  
Antiguo 12/06/2009, 11:49
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Exclamación Enviar datos desde un dropdownlist a un popup

Hola.

Primero que todo doy las gracias por esta página, ya que me ha sacado de muchas dudas.

Tengo un gran problema y llevo mucho rato tratando de arreglarlo y no me resulta.

Estoy creando una plataforma web, con visual studio 2008 y c#.

Lo que quiero hacer es: tengo un webform padre que tiene un dropdownlist, la idea es que en esta lista al seleccionar un item, envíe a un popu el item seleccionado.

El programa lo hace, pero mal. Cuando abro la página padre, y selecciono el item desde la lista, no se abre el popup, si vuelvo a seleccionar un item de la lista, ahí si se abre el popup, pero con el primer dato que había seleccionado..

Ej: Abro la página, en la lista selecciono el número 2, la idea es que en el popup salga el número 2. Pro no pasa así.
Lo que ocurre es: Abro la página, selecciono el número 2 y no se abre el popup, ahora seleccion el número 5 y se abre el popup con el número dos. Si cierro el popup y selecciono el número 7 en la lista de la págin padre, se abre el popup cpn el número 5 escrito. Ayuda!

Está medio confuso, pero espero que me entiendan.

les muestro mi código para ver si me ayudan por favor!

PÁGINA PADRE (WEBFORM):

Código:
<script type="text/javascript" language="javascript">
    var newWin = null;
function abrir()
{
var parametro = document.getelemenbyid('TextBox1');
window.open('popups/popupPrueba.aspx?dato="+parametro+"','top=150,left=150,width=800,height=800');
}
function launchCenter(url, name, height, width) 
		{
			var str = "height=" + height + ",innerHeight=" + height;
			str += ",width=" + width + ",innerWidth=" + width;
			if (window.screen) 
			{
				var ah = screen.availHeight - 30;
				var aw = screen.availWidth - 10;
				var xc = (aw - width) / 2;
				var yc = (ah - height) / 2;
				str += ",left=" + xc + ",screenX=" + xc;
				str += ",top=" + yc + ",screenY=" + yc;
			}			
		
			closeWin();
			newWin = window.open(url, name, str);
			newWin.focus();
			return false;
		}
		function closeWin()
		{
			if (newWin != null)
			{
				if(!newWin.closed)
					newWin.close();
			}
		}	

function popup(ID)
	{
		var ir='popups/popupPrueba.aspx?ID=' + ID;				
		launchCenter(ir,'Prueba', 300,400) ;			
	}

CODE BEHIND:
Código:
protected void Page_Load(object sender, EventArgs e)
        {
            string ID;
           
            ID = (string)(DropDownList1.SelectedValue); 
            DropDownList1.Attributes.Add("onchange", "popup(" + ID + ");"); //envio el dato al popup
            
         }
PÁGINA HIJA (POPUP):

CODE BEHIND:

Código:
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string name = pID;
                TextBox1.Text = name; //Escribe en el textbox lo que rescato (rescata el dato anterior no el actual)
                Button1.Attributes.Add("onclick", "window.close();"); //posee un boton cerrar
            }   
        }

//CAPTURA EL DATO Y LO GUARDA EN LA VARIABLE pID
protected string pID
        { get { return Convert.ToString(Request.QueryString["ID"]); } }

Por favor si alguien me puede ayudar lo agradecería.

GRACIAS!


---------------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Siguiendo con el tema, a alguien se le ocurre como puedo lanzar un popup al seleccionar un item en especial de la dropdownlist???

Ej: Abro la lista, selecciono "Lanzar popup" y ahí se abre, si selecciono otro item no se abre el popup.


Gracias!

Última edición por pyroCL; 17/06/2009 a las 08:45 Razón: Éxtención del tema
  #2 (permalink)  
Antiguo 12/06/2009, 17:10
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Enviar datos desde un dropdownlist a un popup

Hola a ver por donde empiezo.....

1) Elimina todo lo que tenes en tu page_load

2) En tu Drop agregas directamente el codigo para que llame al script
<asp:DropDownList ID="DropDownList1" runat="server" onChange="javascript:popup(this.value);">
El this .value ya contiene el valor seleccionado ok.

Tu error es que al pasar por el page_load siempre y cargar el valor, este se ejecuta luego que el script y va cargando el valor viejo ya que los script se ejecutan antes que el codebehind.

Saludos y a ver si te sale.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #3 (permalink)  
Antiguo 15/06/2009, 08:40
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Enviar datos desde un dropdownlist a un popup



Muchas Gracias, mdavila tu ayuda ha sido de gran ayuda, he quedado mucho más claro de como pasar los datos a mis popups.

Funcionó perfectamente.

Gracias!
  #4 (permalink)  
Antiguo 17/06/2009, 08:34
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Enviar datos desde un dropdownlist a un popup

Siguiendo con el tema, a alguien se le ocurre como puedo lanzar un popup al seleccionar un item en especial de la dropdownlist???

Ej: Abro la lista, selecciono "Lanzar popup" y ahí se abre, si selecciono otro item no se abre el popup.


Gracias!
  #5 (permalink)  
Antiguo 18/06/2009, 08:30
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Enviar datos desde un dropdownlist a un popup

Tema Cerrado!

Gracias.
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 03:21.