Avatar billede torotune Nybegynder
12. oktober 2005 - 14:36 Der er 8 kommentarer og
1 løsning

TIldele værdi til session

Hej,

Jeg har et problem når jeg skal tildele en værdi til min session fra en radiobuttonlist.

Jeg kan godt gøre det med:

  Session("minSession") = Rbl.SelectedItem.Text

Men det virker ikke med:

  Session("minSession") = Rbl.SelectedItem.Value

Jeg har også prøvet med:

  Session("minSession") = Rbl.SelectedItem.Value.ToString()

Men det virker heller ikke. Nogen der ved hvordan jeg gør?
Avatar billede agertoft Nybegynder
12. oktober 2005 - 14:54 #1
Hvilken fejl får du? Du kan smide et hvilket som helst objekt ind i en Session. Hvad er værdien af din Value? Har du prøvet at udskrive Rbl.SelectedItem.Value?
Avatar billede softspot Forsker
12. oktober 2005 - 15:04 #2
Ja, det er faktisk lidt spøjst, for når jeg tester det lokalt, så kan jeg både læse value og text fra en radiobuttonlist's selecteditem. Jeg smider det godt nok ikke over i en session-variabel, men i et tekstfelt. Det burde dog ikke gøre den store forskel.

Det skal lige nævnes at jeg tester i C# og ikke VB.NET, men det burde vel ikke gøre den store forskel...
Avatar billede torotune Nybegynder
12. oktober 2005 - 16:53 #3
Hej igen, nu er det pludselig ikke et problem med text/value, jeg ved ikke hvad der skete da jeg fik rodet med koden.

Men mit problem er nu, at hvis jeg får oprettet en  Session("minSession") på min aspx-side 1, og henter den ind på min aspx-side 2 for at bruge den til at være min
Rbl.SelectedItem.Value vil den ikke.

Men hvis jeg, som Agertoft siger, laver en response.write(session("minSession")) skriver den værdien fint ud på Aspxside2. Men hvis jeg i min Page_load() gør sådan her:

  Sub Page_Load()
        'Response.Write(Session("minSession"))
        'Exit Sub       
       
            If Not Page.IsPostBack Then
              Rbl.SelectedItem.Value = Session("minSession")
            End If
  End Sub

Kommer den med fejlen:

System.NullReferenceException: Object reference not set to an instance of an object. at ASP.side2_aspx.Page_Load()

Hvordan kan det være, den burde da smide værdien ind i Rbl'en når den kan udskrive den?!
Avatar billede agertoft Nybegynder
12. oktober 2005 - 17:56 #4
Du har altså 2 list-controls, som hedder det samme på side 1 og 2?

En session er et objekt, og hvis du skal bruge objektet i en bestemt sammenhæng, skal du caste det til det objekt, du vil bruge det som. Altså:

Rbl.SelectedItem.Value = Session("minSession").ToString()

Men synes mere det ligner, at du ikke har nogen Rbl-control på din side 2 at smide værdien ind i. Har du det?
Avatar billede torotune Nybegynder
12. oktober 2005 - 21:21 #5
Jo, jeg har en Rbl på både side1 og side2. De har begge fire ens items med de samme values. Det jeg vil er, at hvis nummer to item er valgt på side1 (med eks. værdien "hund"), så skal nr to, "hund", også være valgt når jeg går over på side2.

Det jeg prøver er så at danne en session udfra hvad der er valgt i Rbl'en på side1 og få Rbl'en på side2 til at aflæse den når den loades. Hvis jeg på side2 laver en Response.Write(Session("minSession")) udskrives "hund" som forventet.
- Men hvis jeg laver en Rbl.SelectedItem.Value = Session("minSession").ToString()
kommer der en exception.

System.NullReferenceException: Object reference not set to an instance of an object. at ASP.side2_aspx.Page_Load()
Avatar billede agertoft Nybegynder
12. oktober 2005 - 21:36 #6
Prøv at bruge:
Rbl.SelectedValue = Session("dinSession").ToString()

Jeg har prøvet at lave dit eksempel selv og jeg har ingen problemer med det. Godtnok i C#, men det gør jo ingen forskel.

På side2.aspx-siden har du da husket at tilføje
<asp:DropDownList ID="Rbl" Runat="server"></asp:DropDownList>

Altså at det ikke kun er et objekt i din code-behind?
Avatar billede torotune Nybegynder
12. oktober 2005 - 21:56 #7
Sådan nu virker det! :-)

Jeg lavede først en DropDownlist som du viste det, og undrede mig over at den godt kunne blive valgt efter sessionens værdi. Men efter at have udskiftet

  Rbl.SelectedItem.Value

med

  Rbl.SelectedValue

i min RadioButtonList, virkede det ligeså godt. Så der er åbenbart en betydelig forskel på de to metoder..
Avatar billede agertoft Nybegynder
12. oktober 2005 - 22:41 #8
Jeg skal ikke lige gøre mig klog på, hvad forskellen er... plejer bare at bruge SelectedValue ;-)
Avatar billede torotune Nybegynder
12. oktober 2005 - 23:03 #9
Jeg takker mange gange for hjælpen :-)
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