我正在编写一个论坛。我的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页面中,而不是与显示评论页面位于同一页面中。
我还建议使用脚本来更新 UpdatePanel:
<script type="text/javascript">
var UpdatePanel1 = '<%=UpdatePanel1.ClientID%>';
function ShowItems()
{
if (UpdatePanel1 != null)
{
__doPostBack(UpdatePanel1, '');
}
}
</script>
但我不知道如何调用 ShowItem() 函数。
有人问我,尝试添加一行:UpdatePanel1.Update()
在我向数据库添加新行后,但“添加新行”功能位于另一个页面中,所以我不能。
如何在没有按钮的情况下实现数据库更改并自动更新新评论(数据库有更改时更新)。
帮助?我已经尝试了很多天来寻找解决方案,因为我是 ASP.net 的新手,所以这对我来说太难了。