Foros del Web » Programando para Internet » ASP Clásico »

Guardar Dictionary en una Session??

Estas en el tema de Guardar Dictionary en una Session?? en el foro de ASP Clásico en Foros del Web. Estoy creando un carrito y guardo los articulos en un Objeto Dictionary el problema es... Que los datos se pierden por que no se guardan ...
  #1 (permalink)  
Antiguo 28/01/2004, 06:38
Avatar de Raspinu  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 76
Antigüedad: 20 años, 10 meses
Puntos: 0
Guardar Dictionary en una Session??

Estoy creando un carrito y guardo los articulos en un Objeto Dictionary el problema es...
Que los datos se pierden por que no se guardan en una session...

COMO PUEDO GUARDAR EL DICTIONARY EN UNA SESSION???

Tengo esto...
<%
Set objDic = Server.CreateObject ("Scripting.Dictionary")
objDic.Add 2, "Dos"
objDic.Add 3, "Tres"

Dim claves

For each claves in objDic
Response.Write ( claves &" - " & objDic.Item (claves)& " <br>")
Next
Response.Write "Hay " & objDic.Count & " elementos en Diccionario"
%>

Bien y de aqui no se salir como guardo este objeto "objDic" en una session para poder mostrar enotrasa paginas???

Gracias
__________________
Did-Web.com -Diseño y Desarrollo Web-
http://www.did-web.com
  #2 (permalink)  
Antiguo 28/01/2004, 07:14
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 7 meses
Puntos: 13
En el global asa pon algo como esto:

set Session("diccionario") = Server.CreateObject ("Scripting.Dictionary")

Y despues en tu codigo reemplaza objDic por Session("diccionario")
  #3 (permalink)  
Antiguo 29/01/2004, 07:44
Avatar de Raspinu  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 76
Antigüedad: 20 años, 10 meses
Puntos: 0
Dictionary nuevo cada vez??

Como puedo hacerlo sin Global.asa

Ahora el codigo que tengo me añade un registro en el Dictionary me lo guarda en una session.
Parece que funciona ya que desde cualquier pagina saco el contenido de del dictionary.
Pero cuando paso por el formulario para añadir un registro al Directory me sustituye el ultimo registro del directory.....

Usease que no puede añadir más ragistros al Dictionary parece ser que se habre un Directory nuevo cada vez y empieza de nuevo por que ? esa es mi duda..

el codigo


<%
Response.Write "Sesión:"& Session.SessionID
%>
<html>
<head>
<title>Cesto</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<center>
<%
Dim objDic
Set Session("Nombre") = Server.CreateObject ("Scripting.Dictionary")

clavey=Request.Form ("a")
info=Request.Form ("b")
%>

<%
Session("Nombre").Add 2, "Dos"
Session("Nombre").Add 3, "Tres"

Session("Nombre").Add clavey, info

Dim claves

For each claves in Session("Nombre")
Response.Write ( claves &" - " & Session("Nombre").Item (claves)& " <br>")
Next
%>

<p><br>
<%
Response.Write "Hay " & Session("Nombre").Count & " elementos en Diccionario"
%>

<br>
<%
Response.Write "Último Producto adquirido : <b>"&(Session("Nombre").Item(clavey))&"</b>"

%>

<br><br><b>Vamos a ver si funciona la sesion:</b> <br>
<%


'Y ahora las variables de objeto
for each clavex in Session("Nombre")
Response.Write( clavex & "<br>")
next
Response.Write("Tienes " & Session.StaticObjects.Count & " objetos en tu sesión.<br>")

%>


</p>
<p><a href="entra.asp" target="_self">Volver a Formulario</a></p>
</center>
</body>
</html>

Pregunta...

Porque parece que cada vez se abre un Dictionary nuevo comopuedo conservar el primero y ir añidiendo nuevos registros al Dictionary

GRACIAS
__________________
Did-Web.com -Diseño y Desarrollo Web-
http://www.did-web.com
  #4 (permalink)  
Antiguo 30/01/2004, 07:50
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 7 meses
Puntos: 13
Cambia esta linea:

Set Session("Nombre") = Server.CreateObject ("Scripting.Dictionary")

Por esto:

if not IsObject(Session("Nombre")) then
Set Session("Nombre") = Server.CreateObject ("Scripting.Dictionary")
end if
  #5 (permalink)  
Antiguo 30/01/2004, 10:14
Avatar de Raspinu  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 76
Antigüedad: 20 años, 10 meses
Puntos: 0
Mil GRACIAS!!!

Gracias jercer .
Funciono yo sabia que era algo asi pero no estaba muy seguro paso el codigo que funciona con la corrección pa si alguien lo necesita.....

1 pág formulario introduce datos nuevos.
entra.asp
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<p>&nbsp;</p>
<form name="form1" method="post" action="cesto.asp">
<p>Clave:
<input type="text" name="a">
</p>
<p>Info:
<input type="text" name="b">
</p>
<p>
<input type="submit" name="Submit" value="Enviar">
</p>
</form>
<p>
<%

'Y ahora las variables de objeto
for each clavex in Session("Nombre")
Response.Write( clavex & "<br>")
next
Response.Write("Tienes " & Session.StaticObjects.Count & " objetos en tu sesión.<br>")

%>
</p>
</body>
</html>



2 pág Se cargan los datos en Dictionary y a la vez en una sesion
cesto.asp

<%
Response.Write "Sesión:"& Session.SessionID
%>
<html>
<head>
<title>Cesto</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<center>
<%
Dim objDic
if not IsObject(Session("Nombre")) then
Set Session("Nombre") = Server.CreateObject ("Scripting.Dictionary")
end if

clavey=Request.Form ("a")
info=Request.Form ("b")
%>
<%


Session("Nombre").Add clavey, info

Dim claves

For each claves in Session("Nombre")
Response.Write ( claves &" - " & Session("Nombre").Item (claves)& " <br>")
Next
%>
<p><br>
<%
Response.Write "Hay " & Session("Nombre").Count & " elementos en Diccionario"
%>
<br>
<%
Response.Write "Último Producto adquirido : <b>"&(Session("Nombre").Item(clavey))&"</b>"

%>
<br><br><b>Vamos a ver si funciona la sesion:</b> <br>
<%


'Y ahora las variables de objeto
for each clavex in Session("Nombre")
Response.Write( clavex & "<br>")
next
Response.Write("Tienes " & Session.StaticObjects.Count & " objetos en tu sesión.<br>")

%>

</p>
<p><a href="entra.asp" target="_self">Volver a Formulario</a></p>
</center>
</body>
</html>

Espero que a alguien le se de utilidad...
__________________
Did-Web.com -Diseño y Desarrollo Web-
http://www.did-web.com
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 12:23.