在数据库中更新时自动刷新页面

时间:2013-01-02 10:07:55

标签: javascript asp.net

我在asp.net中创建了一个页面。它正在从数据库访问数据。我想要的是每当我更改数据库中的数据时,更改应自动反映在页面上,而无需用户按下刷新按钮。有人告诉我该怎么做。可以使用java脚本完成。

3 个答案:

答案 0 :(得分:1)

您可以使用web sockets将数据发送到连接的客户端,或者您可以使用AJAX,jQuery ajax来汇集服务器以进行数据库更改,或者您可以使用asp.net ajax timer控件。使用asp.net ajax计时器比其他人更直接。

使用asp.net计时器

HTML

<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" />
    <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Label runat="server" id="DateStampLabel" />
        </ContentTemplate>
</asp:UpdatePanel>

代码隐藏(服务器端代码)

protected void UpdateTimer_Tick(object sender, EventArgs e)
{
   // Update the ui with database changes
}

答案 1 :(得分:1)

答案 2 :(得分:1)

对于网页,最好的方法是使用javascript / jQuery异步轮询页面

javascript: setTimeout - http://www.w3schools.com/js/js_timing.asp

jquert: $。ajax - http://api.jquery.com/jQuery.ajax/

  1. 创建一个以指定间隔循环的函数 - 函数CheckServer(秒)
  2. 创建一个页面,告知服务器上有更新 - Updated.aspx
  3. 使用 $。ajax 功能CheckServer(秒)中调用 Updated.aspx 并检查更新。
  4. 如果有更新,请运行代码刷新页面上的必要部分
  5. 您可以在此处找到VS2012 ASP.NET项目示例:

    https://docs.google.com/file/d/0B9m3YXHeSTDOakxVbk50MHhhTkE/edit

    有3个重要文件:

    1. UserPage.aspx - 用户将看到更新的位置。
    2. MakeUpdatePage.aspx - 管理员进行更新的位置。
    3. 我在 services.asmx 中创建了用于管理更新和数据交换的Web服务,而不是通过aspx页面检查更新。
    4. 代码并不完美,只是为了给你一个故事的要点,但它有效。我在2个用户,1个管理员场景中测试了它。

      这个解决方案有点复杂,因为我还向您介绍了 Web服务。而不是默认的。这些都有点定制。它们具有的属性使客户端的浏览器可以直接调用它们并返回 json对象。所以你也将学习 json 是什么......

      您可以在这里找到关于这些概念的好文章:

      http://www.codeproject.com/Articles/45275/Create-a-JSON-WebService-in-ASP-NET-2-0-with-a-jQu