ASP.NET – 9. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

ASP.NET – 9. lekceASP.NET – 9. lekce

 

ASP.NET – 9. lekce

Google       Google       10. 10. 2006       26 407×

Tak dneska si řekneme něco o session a cookies.

Session

Session slouží k dočasnému ukládání dat o uživateli nebo o stavu aplikace. Například máte na stránkách volbu barvy pozadí. Uživatel si vybere nějakou barvu a klikne na OK. Barva se mu změní, ale jakmile uživatel klikne na další odkaz, barva se mu nastaví na přednastavenou, protože server neví, jestli se jedná pořád o toho samého uživatele, nebo jestli to není někdo jiný. A právě k tomu slouží session.

Přidávání hodnot do session

Novou hodnotu můžete do session načíst pomocí metody Add:

C# i VB (samozřejmě bez středníku)

Session.Add(nazev_hodnoty,hodnota);

Anebo to můžete zadat takto:

C#

Session[nazev_hodnoty] = hodnota;
VB

Session(nazev_hodnoty) = hodnota

Pokud budeme později chtít zavolat session s danou hodnotou, uděláme to takhle:

C#

Session[nazev_hodnoty];

U VB.NET to bude stejně, akorát místo hranatých závorek budou kulaté a nebude tam středník.

Onen příklad s barvou:

C#

<!-- stranka1.aspx -->
<%@ Page Language="C#" %>
<script runat="server">

    string[] seznamBarev = {"Modrá","Žlutá","Zelená","Oranžová","Červená"};  //nastavime obsah seznamu barev do pole
    string barvaKod = "";      // vytvorime promennou do ktere budeme ukladat kod barev

    void Page_Load(){
        if(!IsPostBack){  //pokud je stranka načtena poprvé
            dlBarva.DataSource = seznamBarev;  // tak do seznamu dlBarva volžíme obsah pole seznamBarev
            dlBarva.DataBind();  // a aktualizujeme seznam
        }
    }

    void ulozitBarvu(object sender,EventArgs e){

        barvaKod = "";
        switch(dlBarva.SelectedIndex){  // zjistime kterou polozku si uzivatel vybral
            case 0 : barvaKod = "4448B7"; break;  // a podle toho nacteme do promenne barvaKod kód barvy..
            case 1 : barvaKod = "D7CF52"; break;
            case 2 : barvaKod = "4A842B"; break;
            case 3 : barvaKod = "F49D22"; break;
            case 4 : barvaKod = "EA2824"; break;
        }

        Session.Add("bPozadi",barvaKod); // a pote ulozime kod barva do Session bPozadi
    }

</script>
<html>
<head>
</head>
<body bgcolor='#<% Response.Write(Session["bPozadi"]); %>'> <!-- Do pozadi vypiseme Session bPozadi -->
    <form runat="server">
        <asp:DropDownList id="dlBarva" runat="server">
         
        <asp:Button id="btnOdeslat" onClick="ulozitBarvu" runat="server" text="ok"></asp:Button>
    </form>

    <a href="stranka2.aspx">stranka 2</a>
</body>
</html>


<!—stranka2.aspx -->
<%@ Page Language="C#" %>
<script runat="server">
    object pozadi; // vytvorime promennou typu object

    void Page_Load(){

        if(Session["bPozadi"] != null){  // pokud Session bPozedi neni prazdna
            pozadi = Session["bPozadi"]; // tak vlozime do promenne pozadi obsah Session bPozadi

        }
        else{                            // jinak..
            pozadi = "FFFFFF";           // nastavime pozadi na bilou barvu..

        }
    }

</script>
<html>
<body bgcolor='#<% Response.Write(pozadi); %>'>  <!-- Do pozadi vypiseme promennou pozadi -->
    Stránka 2.. <br>
    <a href="stranka1.aspx">Stranka 1</a>
</body>
</html>
VB

<!-- stranka1.aspx -->
<%@ Page Language="VB" %>
<script runat="server">

    Dim seznamBarev As String() = {"Modrá","Žlutá","Zelená","Oranžová","Červená"}  'nastavime obsah seznamu barev do pole
    Dim barvaKod As String = ""      ' vytvorime promennou do ktere budeme ukladat kod barev

    Sub Page_Load
        If IsPostBack = False Then  'pokud je stranka načtena poprvé
            dlBarva.DataSource = seznamBarev  ' tak do seznamu dlBarva volžíme obsah pole seznamBarev
            dlBarva.DataBind()  ' a aktualizujeme seznam
        End If
    End Sub

    Sub ulozitBarvu(sender As object,e As EventArgs)

        barvaKod = ""
        Select dlBarva.SelectedIndex  ' zjistime kterou polozku si uzivatel vybral
            case 0
                barvaKod = "4448B7"  ' a podle toho nacteme do promenne barvaKod kód barvy..
            case 1
                barvaKod = "D7CF52"
            case 2
                barvaKod = "4A842B"
            case 3
                barvaKod = "F49D22"
            case 4
                barvaKod = "EA2824"
        End Select

        Session.Add("bPozadi",barvaKod)  ' a pote ulozime kod barva do Session bPozadi
    End Sub

</script>
<html>
<head>
</head>
<body bgcolor='#<% Response.Write(Session("bPozadi"))  %>'><!-- Do pozadi vypiseme Session bPozadi -->
    <form runat="server">
        <asp:DropDownList id="dlBarva" runat="server"></asp:DropDownList>
         
        <asp:Button id="btnOdeslat" onclick="ulozitBarvu" runat="server" text="ok"></asp:Button>
    </form>
    <a href="stranka2.aspx">stranka 2</a>
</body>
</html>


<!-- stranka2.aspx -->
<%@ Page Language="VB" %>
<script runat="server">

    Dim pozadi As Object ' vytvorime promennou typu object

    Sub Page_Load

        if Session("bPozadi") <> Nothing Then  ' pokud Session bPozedi neni prazdna
            pozadi = Session("bPozadi")  ' tak vlozime do promenne pozadi obsah Session bPozadi

        Else                            ' jinak..
            pozadi = "FFFFFF"           ' nastavime pozadi na bilou barvu..

        End If
    End Sub

</script>
<html>
<head>
</head>
<body bgcolor='#<% Response.Write(pozadi) %>'> <!-- Do pozadi vypiseme promennou pozadi -->
    Stránka 2.. <br>
<a href="stranka1.aspx">Stranka 1</a>
</body>
</html>

Když si nyní vybereme některou barvu, dáme OK a klikneme na odkaz, další stránka bude mít stejnou barvu jako ta předešlá. Ovšem když zavřeme prohlížeč a potom opět najedeme na naši stránku, barva pozadí bude opět původní a barva na další stránce bude bílá. To je z toho důvodu, že stránky ztratí kontakt se serverem, session se vymaže. Pokud bychom chtěli, aby se informace uchovaly, musíme k tomu použít cookies.


Cookies

Cookies jsou malé soubory, které jsou uloženy na uživatelově pevném disku a do kterých můžeme ukládat potřebné informace. Pozor si musíme dávat na to, že uživatel může mít ve svém prohlížeči používání cookies zakázáno, a v tom případě mu naše aplikace fungovat nebude.

Vytvoření cookies

C#

Response.Cookies[nazev_hodnoty].Value = hodnota;

Ve VB.NET je to stejné, s tím rozdílem, že hranaté závorky jsou nahrazeny kulatými a odděláme středník.

Pokud budeme chtít cookies později zavolat, uděláme to takhle:

C#

Response.Write(Request.Cookies[„nazev_hodnoty“].Value);

U VB.NET je to stejné, opět s tím rozdílem, že hranaté závorky jsou nahrazeny kulatými a odděláme středník.

Doba trvání

Cookies jsou v uživatelově počítači uloženy pouze dočasně, po uplynutí nějaké doby jsou z něj automaticky smazány. Dobu pobytí v počítači určuje nastavení vlastnosti expired, která je typu DateTime.

C#

DateTime dobaPlatnosti = new DateTime.Now;

dobaPlatnosti.AddDays(5);
Response.Cookies[„nazev_hodnoty“].Expired = dobaPlatnosti;
VB

Dim dobaPlatnosti As DateTime = new DateTime.Now

dobaPlatnosti.AddDays(5)
Response.Cookies(„nazev_hodnoty“).Expired = dobaPlatnosti

Nyní jsme cookie s názvem nazev_hodnoty nastavili dobu platnosti dní.

Ukládání více hodnot

Pokud chceme do jednoho „koláčku“ uložit více hodnot, zaměníme pouze slovo .Value za .Values:

C#

Response.Cookies[„stranka“].Values[„url“] = „www.programujte.com“;
Response.Cookies[„stranka“].Values[„zakladatel“] = „Curo“;

Ve VB.NET je to opět stejné, až na známé výjimky.

A to je pro dnešek vše. Ještě si můžete zkusit jen tak pro sebe vytvořit náš příklad s barvami pozadí s pomocí cookies.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

2 názory  —  2 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
Alan se věnuje programování webových aplikací a jazyku C++. Studuje na FEI-VŠB v Ostravě

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý