【发布时间】:2011-06-21 10:58:26
【问题描述】:
我正在开发一个 Web 项目,我需要将来自 interbase 数据库的数据显示到网格视图中。然而,这些数据是不断变化的,iv 设法查询数据库并将数据显示到网格视图中。我现在纠结于如何在 5 分钟后自动刷新页面,以便查询和显示新数据。
您能否就我如何实现上述目标提出建议。
【问题讨论】:
我正在开发一个 Web 项目,我需要将来自 interbase 数据库的数据显示到网格视图中。然而,这些数据是不断变化的,iv 设法查询数据库并将数据显示到网格视图中。我现在纠结于如何在 5 分钟后自动刷新页面,以便查询和显示新数据。
您能否就我如何实现上述目标提出建议。
【问题讨论】:
如果你不使用 AJAX,你可以设置一个META refresh 标签来每 5 分钟重新加载一次页面。
如果您确实使用 AJAX,您可以设置 setTimeout 来重新获取数据。
【讨论】:
page_load 上不会为您做任何事情。
literal 控件,并在您的特定内容页面中将其设置为 META 标记。
将 GridView 放入 UpdatePanel 并使用 Timer。
这里有一些链接。
http://ajax.net-tutorials.com/controls/timer-control/
http://mattberseth.com/blog/2007/08/using_the_ajax_timer_control_a.html
http://msdn.microsoft.com/en-us/library/cc295400.aspx
【讨论】:
您可以在从母版页派生的页面中设置 META 刷新,您只需将其添加到 PreRender 中的代码中
HtmlGenericControl ctrl = new HtmlGenericControl("meta");
ctrl.Attributes["http-equiv"] = "refresh";
ctrl.Attributes["content"] = "300";
this.Page.Header.Controls.Add(ctrl);
【讨论】:
创建页面,在 HEAD 部分使用以下 META 标记
<META http-equiv = "refresh" URL = "default.html" />
【讨论】:
在更新面板中使用timer control,设置时间间隔,在timer_Tick事件上调用服务器端事件,页面将定期刷新。间隔以毫秒为单位。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
<asp:PostBackTrigger ControlID="btnSubmit" />
</Triggers>
<ContentTemplate>
<asp:Timer runat="server" id="UpdateTimer" interval="2000" OnTick="Timer1_Tick" />
【讨论】:
在 default.aspx 页面中
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- For auto refresh cause use this section-->
<meta http-equiv="refresh" content="30">
<meta http-equiv="refresh" content="30;url=../account/default.aspx">
<title></title>
</head>
在 default.aspx.cs 后面的代码中
protected void Page_Load(object sender, EventArgs e)
{
Response.AppendHeader("Refresh", 30 + "; URL=../account/default.aspx");
}
此网页将每 30 秒自动刷新一次。
谢谢
【讨论】:
您可以编写一个 javascript 计时器,然后刷新页面。无法记住语法,但它应该类似于 window.location.reload 或 window.form.reload。您在 Page_Load 函数的末尾附加了 javascript 计时器函数。
【讨论】: