2010-12-02 5 views
0

Ich habe ein Problem, dass das OnLoad-Ereignis nicht ausgelöst wird, wenn ich zu einer Seite navigiere und nur die Abfragezeichenfolge ändere. Wenn ich ein Postback mache, wird es aufgerufen, und dann wird die Abfragezeichenfolge geändert und OnLoad wird aufgerufen.Page OnLoad löst keine Änderung der Abfragezeichenfolge aus

Hier ist, wie ich es versuche. Ich navigiere auf die Seite OnLoad feuert -> dann ändere die Abfrage String-Seite Updates (alle gebundenen Elemente werden aktualisiert) OnLoad nicht ausgelöst -> Ich mache ein Postback mit einer Schaltfläche OnLoad feuert -> dann ändern Sie die Abfrage-String OnLoad feuert.

Ich werde versuchen, genauer zu erklären.

Das System hat im Fenster anmelden, wenn ich mich einloggen ich zu einer anderen aspx Seite sendet zwei Query-String-Nachrichten der letzte Abfrage-String eine Zahl (page.aspx? Key = text82 & key2 = 2010) navigieren. Wenn ich auf die Seite komme, wird das PageLoad Event zum ersten Mal aufgerufen und alles ist in Ordnung, wenn ich im Browser den key2 auf 2011 ändere und Enter drücke, wird der PageLoad nicht aufgerufen, aber alle meine gebundenen Elemente werden aktualisiert (GrivView etc ..) . Wenn ich dann mit einem Button ein Postback mache, wird der PageLoad aufgerufen. Wenn ich jetzt das Jahr 2011 zurück auf 2010 ändere und Enter drücke, wird SeiteLoad aufgerufen.

Ich versuche das ist Firefox die PageLoad wird jedes Mal aufgerufen.

Ich müde, um eine Testwebsite zu schreiben, aber ich bekomme nicht das gleiche Problem, aber was ich herausgefunden habe, ist, dass in IE 8 die Abfragezeichenfolge auf die gleiche Nummer ändern und drücken Sie die Taste PageLoad wird nicht aufgerufen. Aber in Firefox macht das Postback Feuer. Hier ist der Testcode

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master"  AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
<h2> 
    Welcome to ASP.NET! 
</h2> 
<p> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx?t=tt& tttttt=2010">HyperLink</asp:HyperLink> 
</p> 
<p> 
    You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409" 
     title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>. 
</p> 
</asp:Content> 

Navigiert zu

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.master" CodeFile="Default2.aspx.cs" 
Inherits="Default2" %> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:Button ID="Button1" 
    runat="server" Text="Button" /> 
</asp:Content> 

OnLoad Ereignis Default2.aspx

protected void Page_Load(object sender, EventArgs e) 
{ 
    Label1.Text += "Called " + DateTime.Now.ToString(); 
} 
+1

Ihre Frage ist nicht klar, also können Sie etwas mehr erklären und auch Ihren OnLoad() Code bekannt geben. –

+0

Was Jeevan sagte; Veröffentlichen Sie auch, warum Sie nicht glauben, dass das Load-Ereignis aufgerufen wird. Achten Sie darauf, die gesamte Methode einschließlich der Signatur einzuschließen. Fügen Sie wahrscheinlich auch den Code ein, in dem Sie den Event-Handler einrichten, wenn Sie so vorgehen, und lassen Sie uns wissen, wo sich der Code befindet. –

+0

Ich werde versuchen, ein paar Code auf diesem zu schreiben, wie es OnLoad wird jedes Mal bei der Verwendung von Firefox aufgerufen wird. – Gaotter

Antwort

0

ich das Problem gefunden werden. Sieht aus wie der Browser-Cache mir das Problem gab. Drücken Sie F12 und löschte den Cache, es funktioniert.

Verwandte Themen