当在 asp.net 中插入更新的记录而不刷新页面时,如何自动更新 Gridview?

Posted

技术标签:

【中文标题】当在 asp.net 中插入更新的记录而不刷新页面时,如何自动更新 Gridview?【英文标题】:how can i update Gridview automatically when a record inserted of updated in asp.net without refresh page? 【发布时间】:2013-10-20 10:10:40 【问题描述】:

我有一个显示一些 cmets 的 gridview,我想用新的 cmets 和在所有在线客户端的数据库中插入或修改的新数据来更新或刷新它。例如 facebook 或 google+。 我使用 c# 和 Visual Studio 2012 和 Sqlserver 2012 进行编程。

【问题讨论】:

要开始查看写入方向,请查看UpdatePanel 控件 【参考方案1】:

一种简单的方法是将页面设置为每隔几分钟自动刷新一次。这可以通过特定的元标记来完成。

<meta http-equiv="refresh" content="300">

以上示例将每五分钟刷新一次页面。

另一种方法是将 GridView 放在一个带有 Timer 的 UpdatePanel 中,该 Timer 将定期刷新 GridView。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>
        <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick">
        </asp:Timer>
    </ContentTemplate>
</asp:UpdatePanel>

这两种方法都会给您的网络服务器带来压力,因此请谨慎选择刷新间隔。

最后,如果您使用的是 ASP.NET 4.5,您可以使用 SSE(服务器发送事件)在仅发生更改时更新每个页面。 Checkout SignalR,一个在 ASP.NET 中透明的 SSE 实现。

【讨论】:

谢谢,但我使用这些方式,但我想在插入记录时显示一个弹出窗口或其他方式来向在线客户端显示该评论而不是刷新priodicaly。我想要一些东西,例如触发告诉 asp.net 已插入记录。并将其添加到 Gridview 我明白了。所以你问如何通知用户 GridView 已更改?或者如何检测数据库中是否进行了更改? 感谢codingstill,是的,我想问两个问题:如何检测数据库中是否发生了更改?当我知道在 db 中进行了更改时,如何为所有在线客户端更新 Gridveiw 中的数据?

以上是关于当在 asp.net 中插入更新的记录而不刷新页面时,如何自动更新 Gridview?的主要内容,如果未能解决你的问题,请参考以下文章

关闭子页面后父页面中的Gridview不刷新 - ASP.NET WEB APP

在 asp.net core 中插入/更新记录时出错

在不刷新父页面的情况下更改 iframe src

ASP.NET MVC RedirectToAction 不刷新页面

更新图像而不闪烁 ASP.NET C#

从另一个控件中的控件刷新 asp.net 页面