1.首先下载AspNetPager7.2,项目中引用AspNetPager.dll
2. 在数据库中创建存储过程UP_GetRecordByPage
------------------------------------
--用途:分页存储过程(对有主键的表效率极高)
--说明:
------------------------------------
CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(1000) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
declare @strOrder varchar(400) -- 排序类型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
if @IsReCount != 0
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
3.在DAL的OverView.cs中有:
4. 在BLL的OverView.cs中有
5.在aspx中有:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Admin_NoteBook.aspx.cs" Inherits="Admin_Admin_NoteBook" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head runat="server">
<title>企业记事管理</title>
<link href="../Css/Style.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript">
//全选全不选
function SelectAll(obj)
{
var aspnetForm=document.getElementById("aspnetForm");
if (aspnetForm.SelectID != null)
{
if (aspnetForm.SelectID.length == null)
{
aspnetForm.SelectID.checked=obj.checked;
}
else
{
for (i=0;i<aspnetForm.SelectID.length;i++)
{
if(aspnetForm.SelectID[i].checked!=obj.checked)
{
aspnetForm.SelectID[i].checked=obj.checked;
}
}
}
}
}
//检查操作
function CheckSelect()
{
var aspnetForm=document.getElementById("aspnetForm");
var checked=false;
if (aspnetForm.SelectID != null)
{
if (aspnetForm.SelectID.length == null)
{
if (aspnetForm.SelectID.checked == true)
{
checked=true;
}
}
else
{
for (i=0;i<aspnetForm.SelectID.length;i++)
{
if(aspnetForm.SelectID[i].checked == true)
{
checked=true;
}
}
}
}
if (checked == false)
{
alert("请选择要操作的记录");
return false;
}
else
{
if (!confirm("注意:请问确定要操作吗"))
{
return false;
}
}
return true;
}
</script>
</head>
<body>
<form id="aspnetForm" runat="server">
<div>
<div class="BodyBlock PTB5">
<div class="Block Hidden">
<div class="Title H22 LH22 TC">
企业记事管理
</div>
<ul class="Header TC">
<li class="Left" style="width: 50px">ID</li>
<li class="Right" style="width: 30px">选择</li>
<li class="Right" style="width: 120px">添加时间</li>
<li class="TC">内容</li>
</ul>
<asp:Repeater ID="NoteList" runat="server">
<ItemTemplate>
<dl class="Middle TC">
<dd class="Left" style="width: 50px">
<%#Eval("ViewID") %>
</dd>
<dd class="Right" style="width: 30px">
<input type="checkbox" name="SelectID" value="<%#Eval("ViewID") %>" /></dd>
<dd class="Right" style="width: 120px">
<%#String.Format("{0:yyyy-MM-dd HH:mm:ss}", Convert.ToDateTime(Eval("ViewAddTime"))) %>
</dd>
<dd class="TL">
<a href='Admin_NoteBookAdd.aspx?ID=<%#Eval("ViewID") %>'>
<%#Eval("ViewContent") %>
</a>
</dd>
</dl>
</ItemTemplate>
</asp:Repeater>
<div class="Footer PTB5 TC">
<input type="button" class="Button" value="添加记事" οnclick="window.location.href='Admin_NoteBookAdd.aspx'" /> <asp:Button
CssClass="Button" ID="DeleteButton" Text="确定删除" OnClientClick="return CheckSelect()"
runat="server" OnClick="DeleteButton_Click" /> <input type="checkbox" name="All"
οnclick="SelectAll(this)" />全选/全不选
</div>
</div>
<div class="Block Hidden">
<div class="Pager" >
<div class="Pager_Info" >
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
CenterCurrentPageButton="True" CustomInfoHTML="第%CurrentPageIndex%页,共%PageCount%页,每页%PageSize%条"
FirstPageText="首页" LastPageText="尾页" LayoutType="Table" NextPageText="下一页" PageIndexBoxType="DropDownList"
PrevPageText="上一页" ShowCustomInfoSection="Right" SubmitButtonText="Go" TextAfterPageIndexBox="页"
TextBeforePageIndexBox="转到" CustomInfoTextAlign="Right" ShowPageIndexBox="Always" CustomInfoSectionWidth="15%">
</webdiyer:AspNetPager>
</div>
</div>
</div>
</div>
<br />
<br />
</div>
</form>
</body>
</html>
5.在NoteBook.cs中有:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Admin_Admin_NoteBook : System.Web.UI.Page
{
YHZB.BLL.tbl_OverView OverBLL = new YHZB.BLL.tbl_OverView();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AspNetPager1.RecordCount = OverBLL.GetList(" ViewCate='" + cate + "'").Tables[0].Rows.Count;
BindData();
}
}
private void BindData()
{
NoteList.DataSource = OverBLL.GetList(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex , " ViewCate='" + cate + "'").Tables[0];
NoteList.DataBind();
}
protected void DeleteButton_Click(object sender, EventArgs e)
{
string noteid = string.Empty;
noteid = YHZB.Model.Requests.GetIntsForm("SelectID");
if (noteid != "0")
{
foreach (string str in noteid.Split(new char[] { ',' }))
{
OverBLL.Delete(Convert.ToInt32(str));
}
BindData();
}
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
BindData();
}
}
到此分页完成!