Class in PostBack

Živijo, Big Smile

Uporabljam Visual Web Developer s C#-om. Že cel teden... Geeked


Zanima me, kako ohranim vrednosti nekega Class-a pri PostBack-u? Huh?
Prav tako me zanima ista reč za struct. Super Angry

Namreč, končal sem neko aplikacijo v visual C# Yes, zdaj pa bi naredil web stran Snail, ki bi podobno kalkulirala,  a operacija ima par korakov, pa bi si pomagal s Class-om in struct iz prvotne aplikacije za shranjevanje podatkov... Embarrassed

Primer bi bil najbolj nazoren... Stick out tongue

Najlepše hvala, Grom. Lightning

Avtor: Grom, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

Grom
Grom - torek, 24. julij 2007

Hej Bojan, Živijo! Zmeraj pripravljen pomagat. Hvala!Huh, tok načinov, ha? Ok, uporabnik bi na določeni strani vnašal podatke, in na isti strani bi se prikazali rezultati. Če prav razumem, bi ViewState bil primeren. (Če to ne moti dejstva, da bi morebiti kakšen drugi uporabnik ob istem času uporabljal isto stran...) Čisto na začetku kode (zgoraj, se opravičujem za terminologijo) imamClassGrid Grid = new ClassGrid(); // za klicanje Class    private struct Bremena // od tu...    {        public string imeBr;        public double tezaBr;        public double distancaX;        public double distancaY;    }       List<Bremena> SeznamBremen = new List<Bremena>();    Bremena VnosBremen = new Bremena(); // do sem pa struct   A pol je prav tako:protected void Page_Load(object sender, EventArgs e)    {        if (Page.IsPostBack == false)        {            ViewState["KlasZaToStran"] = Grid;            ViewState["StructZaToStran"] = VnosBremen;        }        else        {            ClassGrid Grid = ViewState["KlasZaToStran"] as ClassGrid;             List<Bremena> SeznamBremen = ViewState["StructZaToStran"] as List<Bremena>; // to je sicer sprejel,         }    }sam pol se mi , med "surfanjem", prikaže tista grda stran z ERROR-jem: Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Runtime.Serialization.SerializationException: Type 'ClassGrid' in Assembly 'App_Code.2pd7hyo1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable. ...in pol še en kup kode... A to moram serializirat? Sem tut to probal (kolikor pač znam), sam očitno sem naredil še večji šmorn... [:'(]Mogoče sem pa celo reč vtaknil na napačno mesto?  Upam, da nisem preveč konkreten...Najlepša hvala, Grom

bojanv
bojanv - ponedeljek, 23. julij 2007

Class, kot katerikoli objekt ali vrednostni tip lahko shranite na več načinov. ViewState, Session, Cache, Application ( bolj odsvetujem, ker je namenjeno za celotno aplikacijo )....vsak ima svojo posebnost....odvisno, kaj želite. Lahko si shranjujete za uporabnika posebej ( Session ), za določeno stran ( ViewState ) ali pa v spomin ( Cache ). Katero je perfomančno ugodno, pa je odvisno od strukture in načina uporabe.Uporaba pa je (ker gre za key - value variante): Session["neko ime"] = vrednost; ViewState["neko ime"] = vrednost; Cache["neko ime"] = vrednost; HttpContext.Cache.Insert("neko ime", vrednost); itd.Pridobivanje: nektip vrednost = Session["neko ime"] as nekitip; itd. Če vas pa zanima bolj konkretno pa vprašajte.