ASP.NET如何刷新数据?

时间:2012-02-20 16:02:21

标签: c# asp.net data-binding refresh

在我们公司,我需要保留一个网页,其中列出了我们员工的未结订单。

在后面的代码中,我根据从DropDown列表ddlList1和TextBox txtSearch中选择的项目来过滤搜索,如下所示:

string sql
if (!String.IsNullOrEmpty(ddlList1.SelectedValue) &&
    !String.IsNullOrEmpty(txtSearch.Text)) {
  sql = string.Format("{0}={1}", ddlList1.SelectedValue, txtSearch.Text);
} else {
  sql = null;
}
GridView1.DataSource = db.Select(sql);
GridView1.DataBind();

管理层希望这些数据是最新的,并且永远不会超过10分钟。

我不知道该怎么做。我的大部分代码都是在Windows Forms上完成的。

到目前为止,我找到了一种使用META标记刷新页面的方法:

<meta http-equiv="refresh" content="600;Summary.aspx" />

然而,似乎WC3建议不要使用refresh属性:

  

注意:应谨慎使用值“refresh”,因为它可以控制页面远离用户。使用“刷新”将导致W3C的Web内容可访问性指南失败。

参考:HTML meta http-equiv

那么,刷新数据的推荐方法是什么?

如果有帮助,我们的服务器是较旧的SQL 2000机器。

[注意:我发现this question on SO有人建议使用AJAX UpdatePanel。我的项目目前还没有AJAX控件。我可以避免AJAX的复杂性(下载最新的软件包,将其安装到VS2010中,将其添加到我的Project的引用列表中,然后在每个使用它的页面中引用AJAX)或者只是咬紧牙关吗?]

3 个答案:

答案 0 :(得分:1)

你可以使用ajax从服务器获取数据,并通过javascript在客户端填充html容器。我不是指更新的microsoft面板,而是xmlhttp。

答案 1 :(得分:1)

如果你在这个页面上没有做任何其他事情,你可能只需要打开自动刷新功能。是的,它很烦人,我讨厌它,我认为它不应该存在,但我不必使用该网站,如果这真的是客户想要的,那就是客户得到的。

您还可以使用javascript或asp控件强制刷新,而不仅仅是通过HTTP元标记,但它会出现完全相同的问题。

如果您使用更新面板的路线,您将获得一些优势。首先,也许最重要的是,如果您在页面上有很多内容,而不仅仅是更新的gridview,那么您不会重复渲染它。这可能(可能)根据整个页面的外观显着减少服务器负载,或者可能是最小的。接下来,您对用户的更新有一个更微妙(也可自定义)的视觉影响。如果他们希望网站只是闪烁并且是最新的,那么更新面板将在没有光标更改,旋转器全部等的情况下执行此操作。(如果您希望它显示在内,则还可以添加类似的内容更新面板回发时的用户。)

答案 2 :(得分:0)

如果您正在寻找一个简单的解决方法,请尝试以下方法:

<script>
   //Refreshing the page every 5 minutes
   setInterval("location.reload()", 300000);
</script>