我正在编写一个论坛。我的showcomment.aspx
页面,我使用 Repeater 从 SQL 数据库中获取评论并在每个主题中显示它们。
我使用 UpdatePanel 自动更新插入到数据库中的新评论。
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<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>
</div>
UpdatePanel1_Load():
public void UpdatePanel1_Load(Object sender, EventArgs e)
{
int idtopic = Convert.ToInt32(Request.QueryString["idtopic"]);
BindRepeaterComment(idtopic);
}
我建议使用更新面板和计时器控件来自动更新更新面板。
<asp:Timer ID="AutoRefreshTimer" runat="server"
Interval="10000"
ontick="AutoRefreshTimer_Tick"/>
但我只希望它仅在将新行插入数据库时刷新。
向数据库插入新行的功能在另一个 aspx 页面中,而不是在与显示评论页面相同的页面中。
我还建议使用 srcipt 来更新 UpdatePanel:
<script type="text/javascript">
var UpdatePanel1 = '<%=UpdatePanel1.ClientID%>';
function ShowItems()
{
if (UpdatePanel1 != null)
{
__doPostBack(UpdatePanel1, '');
}
}
</script>
但我不知道如何调用 ShowItem() 函数。
有人问我,尝试添加行:UpdatePanel1.Update()
在我向数据库添加新行后,但“添加新行”功能在另一个页面中,所以我不能。
没有按钮,它如何实现数据库更改和自动更新新评论(数据库有变化时才更新)。
帮助?我已经尝试找到解决方案很多天了,因为我是 ASP.net 的新手,所以这对我来说太难了。