0

我也是 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,但我只希望它在数据库更改时自动更新(插入新行)

4

1 回答 1

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属性以打开或关闭 Timer。

于 2013-09-26T07:11:57.053 回答