前段时间做个留言板的功能,业务要求需要对留言列表的查看翻页无刷新,所以做了以下的无刷新分页功能,虽然比较简单,但是涉及到的知识面蛮多的,我记录一下制作的步骤与心得,仅供参考。如有哪里不足,希望大家指出,有更好的方法,也可以提出来,大家一起学习。
1、新建一个分页存储过程:
- CREATE procedure [dbo].[P_Pager]
- (@PageNumber int,
- @PageSize int)
- as
- declare @sql nvarchar(4000)
- set @sql = ''select top '' + Convert(varchar, @PageSize) + '' * from T_Test where [type]=1 and id not in (select top '' + Convert(varchar, (@PageNumber - 1) * @PageSize) + '' id from T_Test order by id desc) order by id desc''
- exec sp_executesql @sql
- GO
2、设置Ajax控件
想要实现无刷新,肯定会用到Ajax,首先是要放入必不可少的:
- <asp:ScriptManager ID="ScriptManager1" runat="server">
- </asp:ScriptManager>
接着把Repeater控件嵌入到UpdatePanel里面去:
- <asp:UpdatePanel ID="UpdatePanel1" runat="server">
- <ContentTemplate>
- <ul>
- <asp:Repeater ID="Repeater1" runat="server">
- <ItemTemplate>
- <li>
- <p>
- <span><%#Eval("username") %>:</span><%#Eval("content").ToString())) %></p>
- <p>
- <em>发表时间:
- <%#Eval("addtime") %>
- </em>
- </p>
- </li>
- </ItemTemplate>
- </asp:Repeater>
- </ul>
- <p>
- 总记录:<asp:Literal ID="ltlCount" runat="server"></asp:Literal></p>
- <p>
- <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="true" PageIndexBoxType="DropDownList" >
- </webdiyer:AspNetPager>
- </p>
- </div>
- </ContentTemplate>
- </asp:UpdatePanel>
3