Asp.net自动回复客户端

时间:2014-07-31 10:19:46

标签: asp.net

我的sql server数据库上有这个表:

  1. 名称
  2. 家族
  3. 地址
  4. 我有2位用户:

    1. 用户A
    2. 用户B
    3. 我希望当用户B在表中插入新记录时,在用户A gridView中显示 我用这个解决方案:
      用户Web浏览器具有以下代码:

      <script type="text/javascript">
          $(document).ready(function () {
              setTimeout("RefreshPage()", 5000);
      
          });
          function RefreshPage() {
             /* var url = "GetOrder.aspx";
              $(location).attr("href", url);
              */
              location.reload();
      
          };
      
      
      
      </script><br/>
      

      该代码每5秒刷新一次用户A网页并在页面加载事件中编写一个简单的代码来运行选择查询并在gridview中显示。
      这种方法非常疯狂地解决了这个问题 我可以使用其他解决方案吗?

2 个答案:

答案 0 :(得分:2)

您的代码刷新整个页面。使用下面的代码,它将只刷新包含。 :)

<asp:ScriptManager ID="scp1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="up1" runat="server">
    <ContentTemplate>
        <asp:GridView ID="yourGrid" runat="server"></asp:GridView>
        <asp:Button id="btnAutoRefresh" runat="server" style="display:none" 
            onclick="btnAutoRefresh_Click" />
    </ContentTemplate>
</asp:UpdatePanel> 

<script type="text/javascript">
    $(document).ready(function () {
        setInterval("RefreshPage()", 5000);

    });
    function RefreshPage() {
        $("#<%=btnAutoRefresh.ClientID %>").trigger("click");

    };    
</script>  

// code behind
 protected void btnAutoRefresh_Click(object sender, EventArgs e)
 {
        //  code for Bind Grid

 }

答案 1 :(得分:0)

您需要使用客户端通知技术,例如SignalR。您可以阅读更多相关信息here