2013-09-26 44 views
0

我是一个非常新的ASP.Net和AJAX也。检查数据库更改使用UpdatePanel

我在编程论坛。我的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?

UPDATE:

看看我下面的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控件refread UpdatePanel的每5秒,但我只是希望它自动更新当数据库发生了变化(新行插入)

回答

0

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

调用此函数的N:

<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属性打开定时器或关闭。

+0

我在aspx页面上添加了这个脚本。然后,我打开数据库中的表格 - >插入新行(手动) - >在我的网页上返回并等待 - >但它仍然没有更新,直到我新鲜的F5。可怜的我,我对AJAX很陌生。我不知道我做错了什么? –

+0

您是否尝试过使用updatepanel1.update(); ? – coder

+0

你的意思是我必须调用updatepanel1.update();在我的Page_Load()中??? –