Avatar billede beef12 Nybegynder
21. august 2006 - 21:28 Der er 9 kommentarer og
1 løsning

Beholde variabel ved skift til ny side

Jeg har en List<string> variabel på min side1.aspx. Når jeg derefter skifter til en ny side, altså ved en button_click skriver: Server.Transfer(side2.aspx), er der så en måde hvorpå jeg kan beholde min List<string> variabel, således at den kan anvendes  på side2.aspx?
Avatar billede snepnet Nybegynder
21. august 2006 - 21:35 #1
Der er flere.... I dit tilfælde kan du sætte en public property (der returnerer listen) på din sender side, og så hos modtageren kan du så hapse den:

// i page_load
if(!IsPostBack)
{
  YourPageWithTheProperty page = HttpContext.Current.Handler as YourPageWithTheProperty;
  if(page != null)
  {
    List<string> strings = page.PropertyName;
  }
}

Mvh
Avatar billede snepnet Nybegynder
21. august 2006 - 21:37 #2
Men altså ... du kan jo også gemme den i session, application, profile,.... Der er flere muligheder.
Mvh
Avatar billede beef12 Nybegynder
21. august 2006 - 22:05 #3
ok - spændende. Kan du på meget kort tid skrive et eksempel på hvordan jeg gemmer min List som en session. Hvis det er besværligt slår jeg det gerne op :-)
Avatar billede beef12 Nybegynder
21. august 2006 - 22:09 #4
HttpContext.Current.Session["DataValues"] = lst;

Noget i den stil, ikke?
Avatar billede snepnet Nybegynder
21. august 2006 - 22:21 #5
Jo - det er sådan ... hvis du er i context af en side i forvejen behøver du ikke HttpContext.Current - så kan du bare nøjes med Session["hvaddunuvilkaldeden"] = etEllerAndetObjekt;
Mvh
Avatar billede beef12 Nybegynder
21. august 2006 - 22:30 #6
Argh - det var vist en dum ide. Når jeg på min anden side skriver:

foreach (ControlData item in Session["DataValues"])
{
}

Får jeg en fejl: foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator'

Det kan være jeg skulle gå tilbage til dit første forslag.

Smid et svar forøvrigt :-)
Avatar billede beef12 Nybegynder
21. august 2006 - 22:31 #7
ControlData er btw en struct jeg lavet.
Avatar billede snepnet Nybegynder
21. august 2006 - 22:36 #8
Du bliver nødt til at typecaste dine sessionvariable:

List<string> liste = Session["DataValues"] as List<string;
if(liste != null)
{
  foreach(string s in liste)
  ...
}

Mvh
Avatar billede beef12 Nybegynder
21. august 2006 - 22:39 #9
Cool - så lærte jeg også at typecaste en List i dag. Husk dit svar ;-)
Avatar billede snepnet Nybegynder
21. august 2006 - 22:43 #10
Kommer her :o)
Mvh
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