代码之家  ›  专栏  ›  技术社区  ›  Matt

我如何能有一个ascx回发和自动刷新自己每隔x秒?

  •  1
  • Matt  · 技术社区  · 15 年前

    我将一个ascx控件绑定到具有频繁更改数据的数据源。有没有一种快速的方法让一个ascx控件回发,每x秒重新绑定和刷新自己。ascx控件位于更新面板中。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Kelsey    15 年前

    使用Ajax工具包中的计时器控件,因为您已经在使用它:

    <asp:Timer ID="tmrPolling" runat="server" Interval="10000" ontick="tmrPolling_Tick"></asp:Timer>
    

    向更新面板添加触发器,如:

    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="tmrPolling" EventName="Tick" />
    </Triggers>
    

    那就执行 tmrPolling_Tick 汉德勒:

    protected void tmrPolling_Tick(object sender, EventArgs e)
    {
        // Change your update panel controls and data here.
    }
    

    不要在更新面板内容区域中添加计时器。

        2
  •  2
  •   Jerry Bullard    15 年前

    在客户端脚本中,可以创建一个计时器并调用uuDoPostback()强制更新面板刷新。拜托 see this article for details .

        3
  •  0
  •   zincorp    15 年前

    为清晰/懒惰而维护的代码重复。

    function pageLoad(sender, args) 
    {
       setTimeout(refreshPanel, 5000); // 5 seconds  
    }
    
    function requestEnd(sender, args)
    {
       // Check for AJAX request errors if you'd like
       setTimeout(refreshPanel, 5000); // 5 seconds
    }
    
    function refreshPanel()
    {
       __doPostBack('UpdatePanelIDHere', '');"
    }
    
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(requestEnd);