这太难理解了,我会试着把我的问题描述得这么清楚。
我在 SQL 数据库中有一个表:
COMMENT(idcom, content,user,idtopic);
我使用中继器控件来显示数据库中的所有注释:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
</td>
<td>
<asp:Label ID="lblcontent" runat="server" Text='<%#Eval("content") %>'>
</asp:Label>
</td>
<td>
<asp:Label ID="lbluser" runat="server" Text='<%#Eval("user") %>'>
</asp:Label>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
我的问题是:当客户端add a new comment (in another page)
-->COMMENT
表中插入新行时--->我必须将所有注释再次加载到 Repeater 中(both old comments and new comments)
.---> 为此,我使用 <UpdatePanel>
并<Timer Control>
Ajax 工具包每 10 秒更新一次。这太业余了,不是一个好的解决方案。
我怎么能每 10 秒只将新注释(新行)加载到中继器中。
我一直认为中继器是固定的,我们不能插入单行。
帮助!你能给我一些建议,通过从数据库加载数据(不直接输入)将单行插入中继器吗???
我想说最好的方法是使用一些Javascript/jQuery插件+ AJAX查询。 ASP.NET WebForms 通常不会以这种方式工作(从 Web 表单的角度来看,最好遍历每次更新的整个页面生命周期)。
首次填充转发器时,将列表和最大的 IdComm 存储在变量中,因此您将在数据库中的所有后续选择中再次使用它。使用存储为参数的 IdComm,获取 IdComm 大于作为参数传递的 IDComm 的所有新注释。之后,将此新行添加到您在第一个请求中请求的第一个列表中,并在您正在使用的此更新面板中再次填充中继器。