停止重新加载页面

时间:2013-10-08 16:08:44

标签: c# asp.net

我在UpdatePanel中有一个计时器,每秒刷新一次面板。问题是每次触发timer事件时都会重新加载页面并重新初始化所有变量。

每次timere事件发生时,如何阻止页面重新加载?

我的Asp代码是:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
    <Triggers>
    </Triggers>
       <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
            <ContentTemplate>
                  <asp:Timer ID="Timer1" runat="server" Enabled="false" Interval="1000">
                  </asp:Timer>
                  <asp:ScriptManager ID="ScriptManager1" runat="server">
                  </asp:ScriptManager>
            </ContentTemplate>
       </asp:UpdatePanel>

修改

我的页面加载代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (File.Exists("D:\\server\\a.txt"))
        {
            logged = File.ReadAllText("D:\\server\\a.txt");
        }
        if (logged != "1")
        {
            //update some text labels
        }
        else
        {
            Timer1.Interval = 1000;
            Timer1.Enabled = true;
        }
     }

1 个答案:

答案 0 :(得分:4)

UpdatePanel限制客户端更新并减少网络流量,但它们仍会生成完整的服务器端更新。导致回发的客户端计时器将导致完整的服务器端刷新。您需要保留变量,因此请考虑使用ViewState。

如果要消除服务器端更新,则需要拦截回发并在客户端上完全处理客户端更新。