2

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

每次触发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;
        }
     }
4

1 回答 1

4

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

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

于 2013-10-08T16:14:36.670 回答