• Jueves 14 de Noviembre de 2024, 08:13

Autor Tema:  Paso De Vairables Entre Forms  (Leído 8153 veces)

carlos_lue

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Paso De Vairables Entre Forms
« en: Martes 12 de Abril de 2005, 21:58 »
0
Hola a todos

mi problema es que necesito pasar datos de una pagina a otra, tengo ,i pagina de login.aspx en donde se autentica al usuario, pero a parte de brindarle el acceso quiero que me guarde el campo nombre de ese usuario para mostrarlo en la siguiente pagina..

recogo el dato con un DataReader y en esta pagina si me lo muestra pero no se como pasarlo a la siguente pagina?

algo parecido a:
variable = request.queryString("variable") `0
variable = request.form("variable")


de antemano gracias... saludos..

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #1 en: Miércoles 13 de Abril de 2005, 08:08 »
0
Hola,

Si lo que quieres es pasar parametros a una página que lo recoja tal y como dices, deberías escribir la redirección como sigue:
Código: Text
  1.  
  2. Response.Redirect("pagina.aspx?variable=" + campoNombre.Text)
  3.  
  4.  
De esta manera la pagina destino (pagina.aspx) recibe un parametro por el metodo GET y puede acceder a el del modo que describias en tu post.

Espero que te sirva de algo. Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

carlos_lue

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #2 en: Jueves 14 de Abril de 2005, 18:19 »
0
Hola Güorker.

Gracias por tu respuesta, pero tengo un problema, creo que si lo hago con el querystring() mis variables seran publicas ya que se mostraran en la barra de direccion del navegador, no existe otro metodo de hacerlo


agradesco cualquier sugerencia....  saludos..

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #3 en: Viernes 15 de Abril de 2005, 08:28 »
0
Hola de nuevo,

Entiendo que no te guste pasar los parametros por el metodo GET (Se llama asi a pasar parametros en la propia URL).

Que yo sepa, con ASP.NET no se pueden pasar parametros por el metodo POST de una pagina a otra. Este metodo se utiliza para pasar parametros a la propia pagina que hace los PostBack.

Pero por suerte existe otro metodo para pasar variables: Variables de Sesion. Este metodo realmente sirve para almacenar variables en el objeto sesion, pero como es accesible desde cualquier pagina ASP.NET, sirve perfectamente para pasar variables.

Lo que deberías hacer es lo siguiente:

1.- Declarar la variable de sesion y asignarle un valor en la pagina origen antes de redireccionar a la pagina destino:
Código: Text
  1.  
  2. string var = "Valor de la Variable";
  3. Session.Add("variable", var);
  4.  
  5. o si no
  6.  
  7. Session["variable"] = var;
  8.  
  9.  

2.- Una vez llegemos a la pagina destino obtener la variable de sesion:
Código: Text
  1.  
  2. if(Session["variable"] != null)
  3. {
  4.   ViewState["variable"] = Session["variable"].ToString();
  5.   Session.Remove("variable");
  6. }
  7.  
  8.  

Date cuenta que en este codigo obtengo la variable de sesion y la guardo en una variable del ViewState. Esto lo hago para seguir teniendo el valor del parametro y poder borrar la varible de sesion y que no se llene la memoria del servidor con un monton de variables.

Espero que te haya servido de algo.

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

carlos_lue

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #4 en: Viernes 15 de Abril de 2005, 17:56 »
0
Hola Güorker.

muchas gracias por seguir ayedandome, esa soluciòn me interesa, pero ahora mi pregunta es si quiero pasar un arreglo? ejemplo:

Dim array(3) As String

arrar(0) = 20
arrar(1) = "dato"
arrar(2) = txtdia.Text
arrar(3) = lblerror.Text

¿Como hago para pasar esos valores a traves de la variable de session, he leido algo de session.Items("variavle") = array
pero no se como sacar los valores de la varible de session, agradesco cualquier ayuda. de antemano gracias y saludos a todos..

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Paso De Vairables Entre Forms
« Respuesta #5 en: Sábado 16 de Abril de 2005, 17:09 »
0
Hola carlos_lue!

Lo que hace el objeto Session es almacenar objetos, si queres almacenar un arreglo solo tenes que hacer esto:

Session("myVar") = miArreglo

y de ahi lo recuperas igual, lo que tienes qeu considerar es el intercambio de tipos....


saludos......


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #6 en: Martes 19 de Abril de 2005, 08:45 »
0
Hola de nuevo,

Serghio te lo ha explicado bien. Para meter el Array como variable de sesion se hace igual que cualquier variable. Pero a la hora de recuperarlo, tendrias que hacer un casting (¿se dice asi no?), ya que se almacena como object en la variable de sesion.

EN visual Basic no se como se haría, pero en C# se haria asi:
Código: Text
  1.  
  2. string[] array = (string[])Session["variable"];
  3.  
  4.  

Bueno, espero que te sirva y consigas lo que pretendes.

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Paso De Vairables Entre Forms
« Respuesta #7 en: Martes 19 de Abril de 2005, 13:42 »
0
Citar
hacer un casting (¿se dice asi no?), ya que se

o sabia que se decia conversion cast, pero suena bien casting :jumpie:


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Moy

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #8 en: Martes 10 de Mayo de 2005, 14:45 »
0
Hm... Por ahí leí que si las cookies estaban desactivadas, Session no se podía utilizar.

No sé hasta que punto será verdad, pero prefiero curarme en salud.

Respecto al paso de variables tengo una duda que seguro que es bastante tonta (como todas las que te tienen horas dando vueltas a la misma linea de código con ganas de ahorcarte con el ratón inalámbrico)

Bien, tengo que pasar una direccion de una imagen de un webform a otro para que en el ultimo se me muestre en un objeto image.

La direccion de  la imagen está en un Repeater, accesible mediante:
<%# DataBinder.Eval(Container.DataItem, "URL") %>

Gracias al codigo que me dio Güorker en otra seccion, abrir la nueva página está chupado.
Código: Text
  1.  
  2. &#60;script LANGUAGE=&#34;JavaScript&#34;&#62;
  3. function url() {
  4. hidden = window.open('ampliacion.aspx?URL=PROBLEMA','miFoto','dialogHeight: 480px; dialogWidth: 640px; edge: Raised; center: Yes; help: No; resizable: No; status: No');
  5. }
  6. &#60;/SCRIPT&#62;
  7.  
  8.  

Pero aquí está el primer problema, ¿cómo le puedo pasar el campo del datarepeater en donde pone PROBLEMA?
El manejo de variables de diferentes lenguajes en el mismo código me tiene desorientado.
En un tal caso, si lidiar con el datarepeater es muy complicado, podría utilizar la imageurl de otro image que tengo en el webform principal en la que muestro precisamente la imagen del datarepeater, pero en pequeño. Aun así estoy en las mismas, ¿como pasarle image1.imageurl a la siguiente página?

Bueno, el siguiente problema es parecido (tal vez incluso tenga la misma solucion)

En el nuevo formulario recojo el PROBLEMA que vengo arrastrando desde el formulario principal de esta manera:

Código: Text
  1.  
  2. &#60;%
  3. dim Direccion
  4. Direccion=Request.QueryString(&#34;URL&#34;)
  5. %&#62;
  6.  
  7.  

Eso creo que funciona bien, y digo creo porque a partir de ahí ya no sé que hacer con la variable Direccion.
Necesito ponerla como imageurl del objeto Image que tengo en la página, pero no tengo ni idea de como.

¿Podeis echarme una mano?

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #9 en: Miércoles 11 de Mayo de 2005, 10:55 »
0
Hola,

Vamos a ver como te lo explico todo. Vamos a ir poco a poco:

1.- Primero tienes que establecer la funion javascript para que sea valido para cualquier parametro "PROBLEMA", es decir pasar a la funcion javascript el parametro que te supone un PROBLEMA:
Código: Text
  1.  
  2. &#60;script LANGUAGE=&#34;JavaScript&#34;&#62;
  3. function url(pathFoto) {
  4. hidden = window.open('ampliacion.aspx?URL='+pathFoto,'miFoto','dialogHeight: 480px; dialogWidth: 640px; edge: Raised; center: Yes; help: No; resizable: No; status: No');
  5. }
  6. &#60;/SCRIPT&#62;
  7.  
  8.  

2.- Una vez tenemos esa funcion javascript tendremos que llamarla cada vez que se haga click en una de las posiciones de la tabla resultante del Repeater:
Código: Text
  1.  
  2. ... onclick='url(&#60;%# DataBinder.Eval(Container.DataItem, &#34;URL&#34;) %&#62;)' ...
  3.  
  4.  

3.- Suponiendo que con lo anterior funciona la página y que al hacer click sobre una de las posiciones de la tabla nos habre un popUp... El funcionamiento de la página que se habre en popUp sería el siguiente:
En el evento Page_Load se escribe lo siguiente:
Código: Text
  1.  
  2. if(!IsPostBack)
  3. {
  4.   dim Direccion
  5.   Direccion=Request.QueryString(&#34;URL&#34;)
  6.   Image1.ImageUrl = Direccion
  7. }
  8.  
  9.  

Creo que con eso debería funcionar. Tengo que decir que esto lo he hecho de cabeza y que nio lo he probado ni nada, por lo que es probable haya errores de escritura incluso alguno de programacion (espero que no).

Si no consigues tu proposito, sigue pidiendo consejo; pero no olvides buscar ayuda en otras fuentes como MSDN o Google...

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

Moy

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #10 en: Miércoles 11 de Mayo de 2005, 13:58 »
0
Sigue sin funcionar, pero por lo menos va más encaminado.
En Google no encuentro nada y buscar en las MSDN es como el chiste del Helicoptero.

EL problema que tengo ahora es que en el paso 2. Cuando cargo el proyecto me dice que la funcion url no es miembro de mi proyecto.
El caso es que si le paso la función en el Load como atributo del boton de esta manera si lo acepta:
Código: Text
  1.  
  2. BAmpliar.Attributes.Add(&#34;onclick&#34;, &#34;javascript:url();&#34;)
  3.  
  4.  


Pero de esa forma va sin parametros, porque no sé como pasárselos ahí tampoco.
Deberían hacer un libro entero solo para explicar como pasar parametros de un script a otro.

Como el botón está fuera del Repeater y sospecho que fuera de él el código <%# DataBinder.Eval(Container.DataItem, "URL") %> no sirve para nada, he decidido pasarle mejor una imageurl perteneciente a un image que está justo encima del Repeater y en donde se carga la imagen que haya pulsado dentro del mismo.
Con eso debería ser menos problematica la variable a pasarle a la función javaScript.
Un compañero me ha dicho que sería así:
Código: Text
  1.  
  2. &#60;asp:button .... onclick='url(&#60;%=portada.imageurl%&#62;)' ....&#62;
  3.  
  4.  

Pero como persiste el problema de que no me acepta la función Url no sé si estará bien.

¿No hay una forma más sencilla de abrir una página con aspecto de popup sin tener que usar Javascript?

Mediante el uso de un módulo con una variable pública que se actualiza cada vez que pulso un botón del repeater logré que funcionase con la función url pero sin necesidad de pasarle variables, pero... hay un detalle que no me gusta.
Si dejo la ventana abierta y cambio la imagen en el formulario principal e intento ampliarla, la imagen del popup no cambia, ya que como se carga en el Load, si ya está abierta no se refresca.

¿El window.open tiene algun procediemiento que vuelva a cargar el load de una página ya abierta?

No, si al final me vais a tener que hacer el programa entero vosotros... :oops:


PD: Lo del Chiste del Helicoptero es:
Un piloto de Helicoptero sufre una avería en la radio y el mapa de abordo y se queda desorientado; entonces se acerca volando a un edificio donde hay un hombre asomado a una ventana y en un papel escribe "¿Donde estoy?" y se lo enseña.
El hombre de la ventana escribe en otro papel "Está usted en un Helicoptero"
Gracias a eso el piloto logró saber donde estaba y en qué direccion estaba el aeropuerto más cercano.
¿Como?
Porque solo en el edificio de Microsoft podían darle una respuesta tan precisa como inutil.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #11 en: Miércoles 11 de Mayo de 2005, 15:18 »
0
Hola de nuevo,

Viendo el problema que has tenido en el punto 2 de los que yo te dije, ...
Has intentado poner:
Código: Text
  1.  
  2. ... onclick='javascript:url(&#60;%# DataBinder.Eval(Container.DataItem, &#34;URL&#34;) %&#62;)' ...
  3.  
  4.  
Fijate que ahora especificamos que es Javascript.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

Moy

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
Re: Paso De Vairables Entre Forms
« Respuesta #12 en: Jueves 12 de Mayo de 2005, 10:54 »
0
Nada, ni flores. Esta aplicacion está empeñada en que no acepta que le pase funciones javascript en los onclick y no hay forma de obligarle a lo contrario.
Con enviarme el error  'javascript' no es un miembro de 'ASP.WebForm1_aspx' me revienta el programa sin remordimiento alguno.
De todos los lenguajes en los que se puede programar, me ha tenido que tocar uno xenofobo.
Encima de que es tan limitado que para hacer las cosas más simples tengo que tirar de otros lenguajes de programación, el .Net no los acepta porque si lo hiciese se demostraría que en realidad es un perfecto inutil...