1

这很难理解,我会尽量清楚地描述我的问题。

我在 SQL DB 中有一个表:

COMMENT(idcom, content,user,idtopic);

我使用中继器控件来显示数据库中的所有评论:

<asp:Repeater ID="Repeater1" runat="server">
  <ItemTemplate>
<table>
      <tr>
         <td>
             &nbsp;
         </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>Ajax <Timer Control>Toolkit 每 10 秒更新一次。这太业余了,不是一个好的解决方案。

我怎样才能每 10 秒才将新评论(新行)加载到中继器中。

我一直认为Repeater是固定的,我们不能插入单行。

帮助!你能给我一些建议,通过从数据库加载数据(不是直接输入)将单行插入到中继器吗???

4

2 回答 2

0

我想说最好的方法是使用一些 Javascript/jQuery 插件 + AJAX 查询。ASP.NET Webforms 通常不会以这种方式工作(从 Webform 的角度来看,每次更新都需要遍历整个页面生命周期)。

于 2013-09-30T14:58:22.757 回答
-1

当您第一次填充中继器时,将列表和最大的 IdComm 存储在变量中,因此您将在所有后续选择中再次使用它在数据库中执行的操作。使用存储为参数的 IdComm 并获取所有 IdComm 大于作为参数传递的 IDComm 的新注释。之后,将这些新行添加到您在第一个请求中请求的第一个列表中,并在您正在使用的这个 updatePanel 中再次填充中继器。

于 2013-09-30T15:00:21.810 回答