2013-09-26 46 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()中??? –