检查数据库更改以使用UpdatePanel

时间:2013-09-26 07:03:43

标签: c# asp.net sql asp.net-ajax

我也是ASP.Net和AJAX的新手。

我正在编写一个论坛。在我的showcomment.aspx页面中,我使用Repeater从SQL数据库获取注释并在每个主题中显示它们。

我使用UpdatePanel自动更新插入数据库中的新注释。

<div onclick="__doPostBack('UpdatePanel1', '');">
      <asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
        <ContentTemplate>          
          <asp:Repeater ID="RepeaterComment" runat="server">
            ....
          </asp: Repeater...>
        </ContentTemplate>
     </asp: UpdatePanel>

函数UpdatePanel1_Load():

public void UpdatePanel1_Load(Object sender, EventArgs e)
    {
        BindRepeaterComment();
    }

似乎需要PageMethodfunctionjquery(但我之前从未编写过jquery)来实现新行插入数据库的时间。

如何检查数据库更改,然后应用于UpdatePanel ???

更新:

看看下面的BindRepeaterCommment函数:

private void BindRepeaterComment(int idtopic)
    { 
        string sql = "select * from COMMENT where idTOPIC="+idtopic;
        DataTable comment = l.EXECUTEQUERYSQL(sql);
        RepeaterComment.DataSource = comment;
        RepeaterComment.DataBind();
    }

我还建议用户使用Timer控件每隔5秒重新读取一次UpdatePanel,但我只是想在数据库发生变化时自动更新(插入新行)

1 个答案:

答案 0 :(得分:0)

您是否尝试过手动更新更新面板:

调用此函数:

<script type="text/javascript">

            var UpdatePanel1 = '<%=UpdatePanel1.ClientID%>';

            function ShowItems()
            {
               if (UpdatePanel1 != null) 
               {
                   __doPostBack(UpdatePanel1, '');
               }
            }       

</script>

编辑:

You can user Timer control to refresh page for every 5 minutes

设置 Interval 属性以指定回发发生的频率,并设置 Enabled 属性以打开或关闭定时器。