[ASP.NET] Form loopt achter :?

Pagina: 1
Acties:

  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 08-05 09:11
Ik heb een heel simpel voorbeeldje gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<%@ Page Language="VB" %>
<script runat="server">

    Sub Page_Load()
        If Not Page.IsPostback Then
            Response.Write("Geen Postback!<br>")
        Else
            Response.Write("Postback!!<br>")        
        End If
        Response.Write("Ik ben er altijd!<br>")
        TestLogin
    End Sub
    
    Sub TestLogin()
        If Session("Ingelogd") = "Ja" Then
            Response.Write("U bent ingelogd!<br>")
        Else
            Response.Write("U ben niet ingelogd, opbokken!<br>")
        End If
    End Sub
    
    Sub Button1_Click(sender As Object, e As EventArgs)
        Session("Ingelogd") = "Ja"
    End Sub
    
    Sub Button2_Click(sender As Object, e As EventArgs)
        Session("Ingelogd") = Nothing
    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="login"></asp:Button>
        <asp:Button id="Button2" onclick="Button2_Click" runat="server" Text="logout"></asp:Button>
        <!-- Insert content here -->
    </form>
</body>
</html>


Echter als ik dit run en ik druk op de button "Log in" dan ben ik bij de volgende postback/reload van de pagina pas ingelogd :?
Hetzelfde geld voor de de "Log uit" button. Als ik hierop druk ben ik bij de volgende postback pas uitgelogd.

NOG erger: als ik nu op login druk en daarna direct op logout dan ben ik ingelogd :D

Ik ben nog niet erg lang bezig met ASP.NET dus ik zou het op prijs stellen als ik niet meteen vierkant uitgelachen zou worden :+

sensei_d.fpv channel


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:49

gorgi_19

Kruimeltjes zijn weer op :9

Eerst word Load uitgevoerd, dan worden de click's uitgevoerd.

En zoek eens op Forms Authentication.

[ Voor 26% gewijzigd door gorgi_19 op 07-04-2005 14:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:37
hahahaha!

Geintje...

Dit is vrij logisch, als je op een button klikt, wordt eerst het Page_Load event uitgevoerd, en daara pas de Button1_Click of Button2_Click.
Als je dus op je button klikt, komt hij eerst door de Page_Load, waar TestLogin aangeroepen wordt. Dan ben je nog niet ingelogd. Daarna pas komt hij in het Button1_Click event, waar de sessie gezet wordt. Etc...

Roomba E5 te koop


Verwijderd

Doe anders maar eens:

Visual Basic .NET:
22
23
24
25
26
27
28
29
30
Sub Button1_Click(sender As Object, e As EventArgs)
        Session("Ingelogd") = "Ja"
        Me.TestLogin()
    End Sub
    
    Sub Button2_Click(sender As Object, e As EventArgs)
        Session("Ingelogd") = Nothing
        Me.TestLogin()
    End Sub


Dan zeg je eigenlijk, direct na het inloggen, nog 's TestLogin() aanroepen, en die zou dan moeten laten zien dat je wel wordt ingelogd :)

[ Voor 23% gewijzigd door Verwijderd op 07-04-2005 14:49 ]


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 08-05 09:11
Jullie zijn geweldig! ;)

Mijn gedachtengang was nogal verkeerd dus; ik dacht namelijk dat het als volgt ging:
- Klik op login
- De pagina gaat naar de server waarbij de sessie word aangemaakt
- Pagina komt terug met zijn ingestelde sessie en de load wordt gestart
- Ik kijk in die load naar de sessie en bepaal of er is ingelogd.

Blijkbaar werkt het dus niet echt zo :D

Als ik het goed heb gaat het dus als volgt:
- Klik op login
- Pagina gaat naar de server waarbij wordt meegenomen dat er is geklikt
- Pagina komt terug naar de user en deze wordt netjes afgelopen beginnende bij de load
- Dan wordt op dit moment (pas) het feitelijk click event gestart en mijn sessie dus aangemaakt...

Mocht ik het mis hebben dan hoor ik het graag.
Dit verklaart btw een hoop voor mij en mijn probleempjes :+ :X

sensei_d.fpv channel


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:37
MariahCareyLover schreef op donderdag 07 april 2005 @ 15:15:
Als ik het goed heb gaat het dus als volgt:
- Klik op login
ok
- Pagina gaat naar de server waarbij wordt meegenomen dat er is geklikt
ok
- Pagina komt terug naar de user en deze wordt netjes afgelopen beginnende bij de load
Nee, dit wordt op de server afgehandeld.
- Dan wordt op dit moment (pas) het feitelijk click event gestart en mijn sessie dus aangemaakt...
op de server ja, daarna spuugt de server een berg html naar de user, en dat rendert zijn browser

Roomba E5 te koop


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 08-05 09:11
sig69 schreef op donderdag 07 april 2005 @ 15:24:
[...]

ok

[...]

ok

[...]

Nee, dit wordt op de server afgehandeld.

[...]

op de server ja, daarna spuugt de server een berg html naar de user, en dat rendert zijn browser
Ochja, natuurlijk, anders was het niet echt server-side meer, mijn fout!

sensei_d.fpv channel


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 08-05 09:11
Misschien mag ik nog een vraag stellen in ditzelfde topic.

Ik heb een dynamische tabel en deze heb ik op een gegeven moment niet meer nodig. Deze kan ik dan invisible maken, maar is dat wel netjes? Wordt de viewstate dan niet onnodig groot?

Oftewel: is er misschien manier om een dynamische tabel te "clearen" zeg maar.
Als ik dit op google probeer te vinden kom ik steeds op hetzelfde terug: namelijk het verwijderen van gegevens uit een databasetabel :X

sensei_d.fpv channel


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:49

gorgi_19

Kruimeltjes zijn weer op :9

Dan zet je EnableViewState op false?

En controls verwijderen uit de controlcollectie bij een postback is een ramp, met een beetje pech klopt je complete controltree niet meer en kan je je event shaken :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 08-05 09:11
Hmmz ok goeie tip.
Zet dan idd de viewstate wel uit, tot nu toe nog niet nodig gehad.

sensei_d.fpv channel

Pagina: 1