Avatar billede eskeeske Nybegynder
19. juni 2003 - 17:29 Der er 4 kommentarer

page.session objected

Hvis jeg tilføjer et obj til page.session er det somon at med Internet Explorer er der en Session per side, uanset hvor mange Internet Explorer udgaver man åbner med siden.

Men når jeg åbner samme side i mozilla (netscape 7), kommer der kun et Session object per browser. Jeg mener hvis jeg åbner samme side i flere vinduer deler alle siderne det samme Session object.

Det er da noget rod.

Hvorfor er det sådan.

Her er den kode jeg har prøvet med (der skal ligge en textbox1 og button1 på aspx siden):

               
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace test
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.TextBox TextBox1;

       
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            object obj = this.Session["roundTrips"];
            int i;
            if (obj==null)
            {
                this.Session.Add("roundTrips", i);
            }
            obj = this.Session["roundTrips"];
            i = (int)obj;
            i++;
            this.Session.Add("roundTrips", i);
            this.TextBox1.Text = i.ToString();
        }


        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void Button1_Click(object sender, System.EventArgs e)
        {
       
        }
    }
}
Avatar billede eskeeske Nybegynder
19. juni 2003 - 17:31 #1
Hov
if (obj==null)
            {
                this.Session.Add("roundTrips", i);
            }

Skal skifted ud med

if (obj==null)
            {
                i = 0;
                this.Session.Add("roundTrips", i);
            }

Det var noget rod.
Avatar billede eskeeske Nybegynder
19. juni 2003 - 17:50 #2
Og hvad er forskellen på at bruge

this.ViewState.Add eller this.Session.Add

Er det ikke bare det samme der sker?
Avatar billede burningice Nybegynder
19. juni 2003 - 22:48 #3
eskeeske>> ikke helt... viewstate er noget client-side ting, mens session bliver liggende på serveren

prøv at læs lidt om StateManagement i SDK'et

ms-help://MS.NETFrameworkSDKv1.1/cpguidenf/html/cpconchoosingserverstateoption.htm
Avatar billede odegaard Nybegynder
20. juni 2003 - 22:32 #4
ViewState gennem skjult i HTML-koden og postes tilbage til serveren. Det benyttes fx. til at huske hvad textbokse indeholder, selvom du skjuler disse.
Dvs. værdierne ikke timer ud lissom et session-objekt. Viewstate bliver så også kun videreført ved postback.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester