Hej. Jag har så på pellesoft, Aha, där ser man. Då är jag inte ute och cyklar... Bra, då vet jag lite mer om basklasserna. Det fungerade utmärktSkapa session en gång
Har en funktion på min sida som visar vilka användare som är online.
När en användare loggar in uppdateras ett fält databasen med det nya aktuella inloggningsdatumet.
Nu vill jag jämföra det nya datumet med det gamla. Det har jag löst genom att, när sidan laddas,
hämta det gamla datumet först och skapa en session med datumet i.
Sen uppdateras värdet i databasen med nya aktuella datumet.
Problem som uppstår är att varje gång sidan laddas så skapas sessionen
med det gamla datumet, vilket leder till att det nya datumet hamnar i sessionen
där det gamla skall ligga. Hur gör jag för att köra funktionen som skapar
session bara första gången sidan laddas?Sv: Skapa session en gång
användaren loggar in, datum hämtas upp från databasen när man senast loggade in, sen sparar jag det i en sessionsvariabel. användaren lämnar sajten eller timar ut - då får den logga in igen och ny hämtning av "senast här" sparas, samt skriver ner datumet. På detta sätt kan jag i forumet spåra vilka inlägg som varit nya sedan sist.Sv:Skapa session en gång
Men hur skall jag göra för att enbart skapa sessionsvariabeln en gång.
Som det ser ut nu så har jag följande i page_load
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
LastAccess()
'Här skapas sesionsvariabeln efter upphämtning från databasen.
'Problemet blir att den körs varje gång sidan laddas istället för bara första gången.
End Sub
</code>
Jag har koden i en UserControl som inkluderas på varje sida,
vilket kanske spelar in eftersom den på varje sida?
Har UserControlen pga att jag uppdaterar fältet med datum
på varje sida som jag sedan använder för att
se vilka användare som är online. Detta kanske inte är det smartaste sättet?Sv: Skapa session en gång
- skapa en basklass 'MyWebBase' som ärver från UI.Page
- På dina webforms ärver du denna klass.
Inherits MyWebBase i stället för UI.Page
i basklassens Page_Load
if session("userObj") is nothing then
' Plocka upp user infon till
session("userObj")
else
'informationen finns..
end ifSv:Skapa session en gång
Tackar & bockar...