2009-10-01 8 views
1

ok .. J'ai une page de démarrage avec des zones de texte J'envoie les valeurs saisies dans la zone de texte à une autre page en utilisant Cache sur le clic du bouton suivant.retour à la page précédente avec des valeurs encore présentes dans les zones de texte

Maintenant, j'ai un problème que lorsque l'utilisateur va à la page suivante annonce décide de revenir encore, il devrait être en mesure de le faire et les valeurs qu'il a entré dans les zones de texte doivent toujours être présents.

est-il un moyen de le faire ...

mon code pour l'envoi des valeurs est:

Blockquote

button4_Click protected void (object sender, EventArgs e)

{ 

     if (TextBox2.Text == "" || TextBox3.Text == "") 

     { 

      Label1.Text = ("*Please ensure all fields are entered"); 

      Label1.Visible = true; 

     } 

     else 

     { 

      Cache["PolicyName"] = TextBox2.Text; 

      Cache["PolicyDesc"] = TextBox3.Text; 

      Response.Redirect("~/Addnewpolicy3.aspx"); 

     } 

    } 

et je reçois ceci par sur la page suivante comme

protected void Page_Load (object sender, EventArgs e)

{ 

     if (!IsPostBack) 

     { 

      string pn = Cache["PolicyName"].ToString(); 

      string pd = Cache["PolicyDesc"].ToString(); 

      string os = Cache["OperatingSystem"].ToString(); 


     } 
    } 

Blockquote

Répondre

1

Cache est partagée par tous les utilisateurs. Le code ci-dessus entraînera le partage d'informations entre les utilisateurs. Si vous voulez un stockage temporaire par utilisateur, vous devez utiliser la session à la place. Autre que je peux faire 2 recommandations:

  1. Procéder à la session, votre approche est bien
  2. Regardez le contrôle Assistant http://msdn.microsoft.com/en-us/magazine/cc163894.aspx

Pour les valeurs de restauration, dans les contrôles simples faire :

<asp:TextBox ID="txtName" runat="server" text='<%=Session["Name"] %>'></asp:TextBox> 
+0

Pire encore, les éléments du cache sont jetés pour économiser de la mémoire à la discrétion du cadre . –

+0

même si j'utilise session comment conserver les valeurs dans la zone de texte si l'utilisateur clique sur le bouton de retour ... pourriez-vous me donner un exemple en utilisant la session .. Merci – user175084

+0

Le problème de mémoire est mineur par rapport aux valeurs de partage entre utilisateurs. –

0

Imaginez que vous avez deux pages, page1 et page2: 1er vous effectuez une recherche sur page1 et obtenir le résultat, puis cliquez sur le lien et entrez 2ème page .

Ma suggestion est lorsque vous cliquez sur lien hypertexte/bouton page1, vous pouvez mettre la valeur du champ textbox dans la session comme

Session["key"] = txtbox.Text; 

Après avoir entré 2ème page, vous pouvez tenter de régler la session égale à elle-même Action du bouton "Retour" pour ramener à page1.

Session["key"] = Session["key"].ToString(); 

Insérez le code lorsque vous sauvegardez de page2, obtenir la valeur de la session et de mettre en textbox de formulaire de recherche

txtbox.Text = Session["key"].ToString(); 
Questions connexes