2010-12-02 47 views
0

我有一个问题,即当我导航到页面并更改查询字符串时,OnLoad事件不会触发。如果我做回发它被调用,然后更改查询字符串更多的OnLoad被调用。Page OnLoad不会引发更改查询字符串

这是我的尝试。我导航到页面OnLoad触发 - >然后更改查询字符串页面更新(所有绑定元素得到更新)OnLoad不会触发 - >我做一个回发使用按钮OnLoad触发 - >然后更改查询字符串OnLoad触发。

我会试着更详细地解释一下。

系统在登录时登录窗口我导航到其他aspx页面,发送两个查询字符串消息,最后一个查询字符串是一个数字(page.aspx?key = text82 & key2 = 2010)。当第一次到达页面时,PageLoad事件被调用并且一切正常,如果我在浏览器中将key2更改为2011并按回车,则PageLoad不会被调用,但所有绑定元素都会被更新(GrivView等)。 。如果我使用按钮做回发,PageLoad会被调用。如果我现在将2011年更改回2010年并按Enter PageLoad被调用。

我试试这是firefox每次都调用PageLoad。

我厌倦了写一个测试网站,但我没有得到同样的问题,但我发现在IE 8中将查询字符串更改为相同的数字并按下输入PageLoad不会被调用。但在Firefox中这样做会导致回火。下面是测试代码

<%@ 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> 

导航到

<%@ 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事件Default2.aspx

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

你的queston不清楚,所以你可以多解释一点,并发布你的OnLoad()代码。 – 2010-12-02 08:21:11

回答

0

我发现了这个问题。看起来像浏览器缓存给我的问题。按F12并清除缓存,它就可以工作。