[asp.net] sub aanroepen vanuit page_load

Pagina: 1
Acties:

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Hey,

Weer een probleempje.
Ik heb een sub calendar.SelectionChanged, deze werkt netjes na het klikken op een datum in de calendar control.
Ook blijft de gekozen dag netjes geselecteerd na de round trip.
Maar hetgeen wat opgebouwt werd in de calendar.SelectionChanged is weer weg na de round trip.
Nu lijkt me de oplossing om deze sub dan nog eens te roepen in de page load.
sub
code:
1
2
    Private Sub Calendar1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
End Sub


Page load
code:
1
2
3
4
5
6
7
8
9
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'kijken of de pagina terug gepost word
        If Page.IsPostBack Then

            If Not Calendar1.SelectedDate.ToString = "" Then
                'Calendar1_SelectionChanged(Calendar1, HIERHEBIKVANALLESINGEZETMAARNIETSWERKTE)
            End If
End Sub

Het grootste probleem is dus om de EVENTARGS mee te geven;
calender.selectedDate.x geeft een overload.
Weet iemand hoe dit moet?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

1. probeer eens : "e" (de eventargs als ook meegegeven aan de page load.

2. je moet het niet willen zo...

de Calendar1_SelectionChanged is een eventhandler van het changeevent van de calender1...
laat het aljseblieft ook alleen dat doen...

als je wil dat er wat hetzelfde gebeurd bij het laden van d epagina als bij het veranderen van de datum in de calender stop dat dan in een aparte private sub/ functie en roep die van uit zowel de page_ load als de Calendar1_SelectionChanged aan...

Das nogal wat netter.

3. C#

Of niet natuurlijk...


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
giMoz schreef op woensdag 15 maart 2006 @ 13:10:
1. probeer eens : "e" (de eventargs als ook meegegeven aan de page load.

2. je moet het niet willen zo...

de Calendar1_SelectionChanged is een eventhandler van het changeevent van de calender1...
laat het aljseblieft ook alleen dat doen...

als je wil dat er wat hetzelfde gebeurd bij het laden van d epagina als bij het veranderen van de datum in de calender stop dat dan in een aparte private sub/ functie en roep die van uit zowel de page_ load als de Calendar1_SelectionChanged aan...

Das nogal wat netter.

3. C#
Goede tips, nu heb ik in m`n page load dit staan;
code:
1
2
3
4
5
6
7
8
9
10
11
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'kijken of de pagina terug gepost word
        If Page.IsPostBack Then

            If Not Calendar1.SelectedDate.ToString = "" Then
                Calendar1_SelectionChanged(sender, e)
            End If

        End If
        'einde controle page postback

Dus als er een postback komt en er is een dag geselecteerd (tijdens deze rount trip of via eerdere) roept ie de sup calendar1_selectionChanged aan.
de sender en de e neemt de Page_Load al netjes over en geeft deze dus ook goed door.
Verder heb ik; Handles Calendar1.SelectionChanged bij de calendar sub weggehaald anders werd deze sub zowel aangeroepen via de page_load als via de selectionChanged en kreeg ik dus dubbele resulataten. Zoals het nu is lijkt het gewoon goed te werken.
Is dit ook een nette oplossing?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

een gezegde is: if it's stupid but it works, it ain't stupid...

maar net is die zeker niet.

1. je geeft een event sender en eventargs mee aan de sub Calendar1_SelectionChanged, worden deze daar ook gebruikt??? Zo nee, waarom geef je ze dan mee?

2. de Calendar1_SelectionChanged (<<objectid>>_<<eventname>>) syntax wordt gebruikt om de eventhandlers mee te definieren. Het is netter om de sub die je aanroept eeen andere naam te geven dan Calendar1_SelectionChanged, omdat deze sub nu niet meer afgaat bij een SelectionChanged event van het Calendar1 object. De naam van de sub geeft nu ook niet meer weer wat deze doet.

3. als je de code die in de Calendar1_SelectionChanged staat alleen maar aanroept vanuit de Page_Load, waarom zet je het dan niet gwoon in de Page_Load zelf???

Of niet natuurlijk...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 20:41

mulder

ik spuug op het trottoir

Predje schreef op woensdag 15 maart 2006 @ 13:25:
[...]


Goede tips, nu heb ik in m`n page load dit staan;
code:
1
2
3
4
5
6
7
8
9
10
11
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'kijken of de pagina terug gepost word
        If Page.IsPostBack Then

            If Not Calendar1.SelectedDate.ToString = "" Then
                Calendar1_SelectionChanged(sender, e)
            End If

        End If
        'einde controle page postback

Dus als er een postback komt en er is een dag geselecteerd (tijdens deze rount trip of via eerdere) roept ie de sup calendar1_selectionChanged aan.
de sender en de e neemt de Page_Load al netjes over en geeft deze dus ook goed door.
Verder heb ik; Handles Calendar1.SelectionChanged bij de calendar sub weggehaald anders werd deze sub zowel aangeroepen via de page_load als via de selectionChanged en kreeg ik dus dubbele resulataten. Zoals het nu is lijkt het gewoon goed te werken.
Is dit ook een nette oplossing?
Opzich is hier niks mee hoor. Je zou de code die in de eventhandler misschien in een aparte functie kunnen zetten en die aanroepen van uit je selectionchanged handler of je page_load.

edit:
Dit is ook wel handig om in het achterhoofd te houden:
http://msdn2.microsoft.co...rary/ms178472(VS.80).aspx

[ Voor 6% gewijzigd door mulder op 15-03-2006 13:50 ]

oogjes open, snaveltjes dicht


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
giMoz schreef op woensdag 15 maart 2006 @ 13:36:
een gezegde is: if it's stupid but it works, it ain't stupid...

maar net is die zeker niet.

1. je geeft een event sender en eventargs mee aan de sub Calendar1_SelectionChanged, worden deze daar ook gebruikt??? Zo nee, waarom geef je ze dan mee?
Zo worden weldegelijk gebruikt, selectedDate voor het ophalen van gegevens uit de database en uit de web.config

2. de Calendar1_SelectionChanged (<<objectid>>_<<eventname>>) syntax wordt gebruikt om de eventhandlers mee te definieren. Het is netter om de sub die je aanroept eeen andere naam te geven dan Calendar1_SelectionChanged, omdat deze sub nu niet meer afgaat bij een SelectionChanged event van het Calendar1 object. De naam van de sub geeft nu ook niet meer weer wat deze doet.
De naam maakt me niet echt veel uit, maar het is idd netter om deze ook nog even aan te passen

3. als je de code die in de Calendar1_SelectionChanged staat alleen maar aanroept vanuit de Page_Load, waarom zet je het dan niet gwoon in de Page_Load zelf???
Ik vind het zo overzichtelijker
Kan ik het trouwens beter een sub laten of er nu een function van maken?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

sorry? je hebt de event sender en event args nodig om iets uit een database of uit de web.config op te halen ??

Zou je de code uit de wat je nu in de Calendar1_SelectionChanged hebt staan eens willen posten?

criteria voor de keuze sub of function is volgens mij: Geeft het iets terug..
een sub kan namelijk geen return value hebben, een function wel.
Weet niet of in vb.net een function een returnvalue MOET hebben..

//offtopic:
ik vind Visual Basic sowieso niet overzichtelijk, dus toch maar tip 3 uit m'n eerste reply? ;)

[ Voor 26% gewijzigd door giMoz op 15-03-2006 13:58 ]

Of niet natuurlijk...


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
giMoz schreef op woensdag 15 maart 2006 @ 13:57:
sorry? je hebt de event sender en event args nodig om iets uit een database of uit de web.config op te halen ??

Zou je de code uit de wat je nu in de Calendar1_SelectionChanged hebt staan eens willen posten?

criteria voor de keuze sub of function is volgens mij: Geeft het iets terug..
een sub kan namelijk geen return value hebben, een function wel.
Weet niet of in vb.net een function een returnvalue MOET hebben..

//offtopic:
ik vind Visual Basic sowieso niet overzichtelijk, dus toch maar tip 3 uit m'n eerste reply? ;)
Ow in mijn CalendarDRender gebruik is event args (e) bijvoorbeeld zo;
e.Day.IsOtherMonth
e.Day.IsSelectable
e.Cell.CssClass

In Calendar1_SelectionChanged gebruik is alleen
Dim SelDayStart As Date = Calendar1.SelectedDate dus gebruik ik e niet(?)

vb.net is wat ik ook gebruikte in classic ASP vind het fijn werken, waarom raad je mij C# aan? Wil best een andere taal leren dus..

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

de Calendar1_SelectionChanged hoeft dus geen sender of eventargs te hebben...

over C#, de syntax van C# vind ik nogal wat netter dan die van VB.net/vbscript. De accolades, de string variblename="value" t.o.v. Dim variablename as string variablename = "value", heerlijk.

heb zelf jarenlang classic ASP gedaan met vbscript maar er is geen haar op mijn hoofd die ooit heeft gedacht om .net maar met vb.net te gaan doen.

het was mijn grootste ergernis in classic asp: syntax, enig alternatief was server site Jscript, maar dat was weer te beperkt t.o.v. vbscript.

ik vind C# er mooier uit zien en hoe meer ik er naar kijk hoe lelijker ik VB vindt, en dit puntkomma overal achter plaatsen wen je vanzelf aan ;

Of niet natuurlijk...


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
giMoz schreef op woensdag 15 maart 2006 @ 14:43:
de Calendar1_SelectionChanged hoeft dus geen sender of eventargs te hebben...

over C#, de syntax van C# vind ik nogal wat netter dan die van VB.net/vbscript. De accolades, de string variblename="value" t.o.v. Dim variablename as string variablename = "value", heerlijk.

heb zelf jarenlang classic ASP gedaan met vbscript maar er is geen haar op mijn hoofd die ooit heeft gedacht om .net maar met vb.net te gaan doen.

het was mijn grootste ergernis in classic asp: syntax, enig alternatief was server site Jscript, maar dat was weer te beperkt t.o.v. vbscript.

ik vind C# er mooier uit zien en hoe meer ik er naar kijk hoe lelijker ik VB vindt, en dit puntkomma overal achter plaatsen wen je vanzelf aan ;
Bedankt voor je reactie.
Zeg ik het goed als ik zeg dat je met VB.NET excact hetzelfde kunt als met C#.NET?
Verder ben ik gewend aan de syntax van VB en vind ik deze niet echt "lelijk", maar ik ben daarintegen ook gewend aan programmeren met ; op het einde vanuit Flash ActionScript. (zet zelfs soms ; in vb 8)7 )
Wellicht is het eens een optie om een wat met C# te gaan doen, in mijn ogen is eigelijk alleen de syntax anders maar het eindproduct hetzelfde. Misschien ligt C# me ook wel beter, wie weet.
Is het makkelijk om voorbeelden te vinden van C#, buiten de msdn library kan ik vaker VB.NET codes vinden en artikelen dan van C#.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Zeg ik het goed als ik zeg dat je met VB.NET excact hetzelfde kunt als met C#.NET?
Nee, met C# kan je meer.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Maar niet extreem veel meer. De keuze blijft vooral een persoonlijke ( of bedrijfs policy natuurlijk ;) )

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Nu kan ik het zelf gaan nazoeken en over een paar dagen weten wat ik zoal meer kan met C#, maar zou je me kort kunnen vertellen wat je meer kunt?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:52

gorgi_19

Kruimeltjes zijn weer op :9

rwb schreef op woensdag 15 maart 2006 @ 16:19:
[...]

Maar niet extreem veel meer. De keuze blijft vooral een persoonlijke ( of bedrijfs policy natuurlijk ;) )
Neuh, dat niet, veel verschil is er niet... Maar z'n stelling klopt niet. :P
Predje schreef op woensdag 15 maart 2006 @ 16:20:
Nu kan ik het zelf gaan nazoeken en over een paar dagen weten wat ik zoal meer kan met C#, maar zou je me kort kunnen vertellen wat je meer kunt?
Operator overloading en unsafe blocks als voorbeelden.

[ Voor 34% gewijzigd door gorgi_19 op 15-03-2006 16:27 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

dat je met C# meer kon dan met vb.net wist ik ook niet eens...

een reden des te meer om VB.net uit het raam te gooien.

Maar ben ook wel benieuwd of er een overzicht is met wat C# meer kan dan vb.net

Of niet natuurlijk...


  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
Herstel op het geheel, de oplossing die ik had werkt toch niet.
Telkens loopt de selectedDate een round trip achter..
Dus.. ik selecteer eerst dag 23, dan kreeg ik bij het klikken op dag 31 de gegevens van dag 23, klik in dan op dag 14 krijg ik de gegevens van dag 31.
Nu heb ik het weer terug gezet op het oude, dus gewoon alleen aanroepen vanuit selectedDate_Changed en dan gaat het wel goed.

  • Predje
  • Registratie: December 2002
  • Laatst online: 03-03-2025
giMoz schreef op woensdag 15 maart 2006 @ 16:49:
dat je met C# meer kon dan met vb.net wist ik ook niet eens...

een reden des te meer om VB.net uit het raam te gooien.

Maar ben ook wel benieuwd of er een overzicht is met wat C# meer kan dan vb.net
Kwam toevallig net deze tegen, heel intressant. :D
http://support.microsoft.com/?kbid=308470
Pagina: 1