当转发器控件中插入了新行时,自动将新行插入到 SQL Server 2008 DB 中

本文关键字:插入 新行 SQL Server DB 2008 控件 转发器 新行时 | 更新日期: 2023-09-27 18:33:17

这太难理解了,我会试着把我的问题描述得这么清楚。

我在 SQL 数据库中有一个表:

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><Timer Control> Ajax 工具包每 10 秒更新一次。这太业余了,不是一个好的解决方案。

我怎么能每 10 秒只将新注释(新行)加载到中继器中。

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

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

当转发器控件中插入了新行时,自动将新行插入到 SQL Server 2008 DB 中

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

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