/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
[.Net,c#] Problemer med Page_Load
Fra : Jesper Stocholm


Dato : 13-10-02 11:04

Jeg har af og til problemer med at afvikle code i Page_Load-event'en. Det
er som om, at problemerne normalt løser sig af sig selv, men nu er
problemet opstået igen - og derfor vil jeg altså gerne have lidt hjælp
til trouble-shooting.

Et eksempel er siden http://stocholm.dk/about.aspx

Kode på siden er

using System;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace stocholm
{
   public class about : System.Web.UI.Page
   {
      protected System.Web.UI.WebControls.Label users;
      protected System.Web.UI.WebControls.Label dateTime;

      private void Page_Load(object sender, System.EventArgs e)
      {
         tools genTools = new tools();
         dateTime.Text = genTools.displayTime(DateTime.Now);
         users.Text = genTools.getNumberofUSers();
         //users.Text = "Jesper";
      }
   }
}

Funktionen nedarver fra en klasse i en dll-fil, der hedder "tools". Den indeholder koden:

   public class tools : Page
   {
      public string displayTime(DateTime cTime)
      {
         string strTime = String.Format("{0:D}", cTime) + " @ " + String.Format("{0:T}", cTime);
         return strTime;
      }

      public string getNumberofUSers()
      {
         return Application["intUsers"].ToString();
      }
   }

Som det ses, er det blot en slags værktøjskasse, hvor jeg smider de små
funktioner jeg har brug for af og til. I samme dll har jeg en klasse til
mysql-databasekald, og den virker fint.

Kode, der giver mig problemer, er selvsagt:

   tools genTools = new tools();
   dateTime.Text = genTools.displayTime(DateTime.Now);
   users.Text = genTools.getNumberofUSers();
   //users.Text = "Virk så for fanden !";

der ganske enkelt ikke bliver afviklet - heller ikke selvom jeg blot
sætter noget text ind i en label - som den sidste linie indikerer.

Jeg kan ikke selv se nogle fejl ... men måske kan I ?

pft :)

--
Jesper Stocholm
http://stocholm.dk
Overvejer du at købe bøger ved saxo.dk ? Kig først på
http://www.firmcheck.dk/Info.asp?website=www.saxo.dk

 
 
Jakob Andersen (13-10-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-10-02 11:08

"Jesper Stocholm" <jespers@stocholm.invalid> wrote
> Jeg har af og til problemer med at afvikle code i Page_Load-event'en. Det
> er som om, at problemerne normalt løser sig af sig selv, men nu er
> problemet opstået igen - og derfor vil jeg altså gerne have lidt hjælp
> til trouble-shooting.
>
> Et eksempel er siden http://stocholm.dk/about.aspx

Hvordan ser about.aspx ud?

--
Jakob Andersen



Jesper Stocholm (13-10-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 13-10-02 11:33

Jakob Andersen wrote :

> "Jesper Stocholm" <jespers@stocholm.invalid> wrote
>> Jeg har af og til problemer med at afvikle code i Page_Load-event'en.
>> Det er som om, at problemerne normalt løser sig af sig selv, men nu
>> er problemet opstået igen - og derfor vil jeg altså gerne have lidt
>> hjælp til trouble-shooting.
>>
>> Et eksempel er siden http://stocholm.dk/about.aspx
>
> Hvordan ser about.aspx ud?

sorry ... den ser således ud:

<%@ Page Language="c#" src="about.aspx.cs" AutoEventWireup="false" Inherits="stocholm.about" %>
....
....
og to labels:
<asp:Label ID="users" Runat="server" />
<asp:Label ID="dateTime" Runat="server" />
....
....


--
Jesper Stocholm
http://stocholm.dk
Overvejer du at købe bøger ved saxo.dk ? Kig først på
http://www.firmcheck.dk/Info.asp?website=www.saxo.dk


Jakob Andersen (13-10-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-10-02 13:57

"Jesper Stocholm" <jespers@stocholm.invalid> wrote
> sorry ... den ser således ud:
>
> <%@ Page Language="c#" src="about.aspx.cs" AutoEventWireup="false"
Inherits="stocholm.about" %>

Du skal lige have tilknyttet din Page_Load eventhandler til klassen, så hvis
du tilføjer følgende i din klasse så burde det spille:

override protected void OnInit(System.EventArgs e){
this.Load += new System.EventHandler(this.Page_Load);
}

--
Jakob Andersen



Jesper Stocholm (13-10-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 13-10-02 14:43

Jakob Andersen wrote :

> "Jesper Stocholm" <jespers@stocholm.invalid> wrote
>> sorry ... den ser således ud:
>>
>> <%@ Page Language="c#" src="about.aspx.cs" AutoEventWireup="false"
> Inherits="stocholm.about" %>
>
> Du skal lige have tilknyttet din Page_Load eventhandler til klassen,
> så hvis du tilføjer følgende i din klasse så burde det spille:
>
> override protected void OnInit(System.EventArgs e){
> this.Load += new System.EventHandler(this.Page_Load);
> }

hmmm ... jeg syntes ikke, at det kunne passe, at jeg skulle indsætte
dette i hver side/klasse jeg brugte, så jeg gennemgik lige mine sider -
samt .Net dokumentationen - igen. Jeg faldt derfor over følgende:

[...]
Alternatively, the ASP.NET page framework also supports an automatic way
to associate page events and methods. If the AutoEventWireup attribute
of the Page directive is set to true (or if it is missing, since by
default it is true), the page framework calls page events automatically,
specifically the Page_Init and Page_Load methods. In that case, no
explicit Handles clause or delegate is needed.

The disadvantage of the AutoEventWireup attribute is that it requires
that the page event handlers have specific, predictable names. This
limits your flexibility in how you name your event handlers. Therefore,
in Visual Studio, the AutoEventWireup attribute is set to false by
default and the designer generates explicit code to bind page events to
methods. [...]

Hvis jeg fjerner AutoEventWireUp-attributten, så virker det som
forventet. Det eneste "draw-back" jeg lige umiddelbart kan se er, at jeg
så _skal_ kalde min øverste event-handler for Page_Load, men det er nu
ikke fordi jeg synes, at det er noget stort tab.



--
Jesper Stocholm
http://stocholm.dk
Overvejer du at købe bøger ved saxo.dk ? Kig først på
http://www.firmcheck.dk/Info.asp?website=www.saxo.dk

Jakob Andersen (13-10-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-10-02 15:03

"Jesper Stocholm" <jespers@stocholm.invalid> wrote
> hmmm ... jeg syntes ikke, at det kunne passe, at jeg skulle indsætte
> dette i hver side/klasse jeg brugte, så jeg gennemgik lige mine sider -
> samt .Net dokumentationen - igen. Jeg faldt derfor over følgende:

[Udrag fra SDK]

> Hvis jeg fjerner AutoEventWireUp-attributten, så virker det som
> forventet. Det eneste "draw-back" jeg lige umiddelbart kan se er, at jeg
> så _skal_ kalde min øverste event-handler for Page_Load, men det er nu
> ikke fordi jeg synes, at det er noget stort tab.

Jeg har faktisk aldrig haft AutoEventWireUp sat til true da jeg regner det
for et spild af ressourcer, men hvis man alligevel benytter de fleste
Events, er det nok minimalt hvor meget der går tabt.

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste