1

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

4

3 回答 3

5

使用 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.
}

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

于 2009-11-13T23:42:52.853 回答
2

在客户端脚本中,您可以创建一个计时器并调用 __doPostBack() 以强制刷新更新面板。详情请看这篇文章

于 2009-11-13T23:44:19.590 回答
0

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

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);
于 2009-11-13T23:46:46.187 回答