Avatar billede elv Nybegynder
13. juni 2003 - 13:39 Der er 6 kommentarer og
1 løsning

Page_Unload bliver ikke kaldt

Jeg vil have kørt noget kode som det sidste inden en side bliver vist, hvilket Page_Unload skulle være beregnet til. Imidlertid synes jeg ikke den bliver kørt. Følgende eksempel (test.aspx) viser det:

<%@ Page Language="C#" Debug="true" Trace="true"%>

<script language="C#" runat="server">
  private void Page_Load() {
    Trace.Write("Load");
  }

  private void Page_UnLoad() {
    Trace.Write("unload");
  }
</script>

Outputtet giver:
aspx.page Begin Init 
aspx.page End Init 0.000039 0.000039
Load 0.000617 0.000578
aspx.page Begin PreRender 0.000659 0.000043
aspx.page End PreRender 0.000682 0.000023
aspx.page Begin SaveViewState 0.000770 0.000088
aspx.page End SaveViewState 0.000792 0.000022
aspx.page Begin Render 0.000811 0.000019
aspx.page End Render 0.000951 0.000141

... altså ingenting med Unload. Nogen der kan se problemet?
Avatar billede odegaard Nybegynder
13. juni 2003 - 13:47 #1
Det hedder nu
public void Page_Load(Object obj, EventArgs e) { }
Avatar billede odegaard Nybegynder
13. juni 2003 - 13:48 #2
Øh sorry, læste forkert.
Unload-navnet er UDEN stort L.
dvs.
private void Page_Unload() { }
Avatar billede elv Nybegynder
13. juni 2003 - 14:11 #3
Korrekt, men det giver stadig samme resultat (havde også prøvet det andet tidligere, det var et uheld jeg ikke fik det ændret tilbage)
Virker det på din server?
Nuværende kode er:

<%@ Page Language="C#" Debug="true" Trace="true"%>

<script language="C#" runat="server">
  private void Page_Load() {
    Trace.Write("Load");
  }

  private void Page_Unload() {
    Trace.Write("unload");
  }
</script>
Avatar billede odegaard Nybegynder
13. juni 2003 - 14:52 #4
Jeg begynder at tvivle på at du kan trace så sent i dit event. Nedenstående burde også virke, men det gør det heller ikke:
<%@ Page Language="C#" Debug="true" Trace="true"%>

<script language="C#" runat="server">
  private void Page_Load() {
    Trace.Write("Load");
    this.Unload += new System.EventHandler(this.UnloadDogNu);
  }

  private void UnloadDogNu(Object o, EventArgs e) {
    Trace.Write("unload");
  }
</script>

Det virker fint med alle de andre events (prøv fx. at ændre this.Unload til this.PreRender). Unload-eventet findes, da den fejler hvis du angiver et der ikke gør.
Avatar billede elv Nybegynder
13. juni 2003 - 15:09 #5
Meget underligt :)

Men ok, jeg bruger da bare PreRender så... Jeg prøvede dog at gøre følgende:

  private void PreRender(Object o, EventArgs e)
  {
    Trace.Write("prerender");
  }

... hvormed den ikke bliver kørt, selvom jeg har AutoEventWireUp slået til. Må man ikke det?
Avatar billede odegaard Nybegynder
13. juni 2003 - 15:13 #6
Hedder den ikke Page_PreRender?
Avatar billede elv Nybegynder
13. juni 2003 - 15:18 #7
Tankefejl!
Perfekt, jeg siger tak!
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