我也是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();
}
似乎需要PageMethod
或function
或jquery
(但我之前从未编写过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,但我只是想在数据库发生变化时自动更新(插入新行)
答案 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
属性以打开或关闭定时器。