当然这里要注意的是 <div id="pager" ></div>,它就是jQuery的分页控件,如果大家对他的样式不满意可以自行修改。下面我们来看看C#实现代码:
public partial
class Page_jQuery_Page : System.Web.UI.Page
{
public int count; //数据条数
public int page = 1; //当前页
public int pagecount = 5; //每页显示数据条数
protected void Page_Load( object sender, EventArgs e)
{
if (!IsPostBack)
{
count = IPDAO.getCount();
Bind();
}
}
public void Bind()
{
if (Request.QueryString[ "page"] == null)
{
page = 1;
}
else
{
page = int.Parse(Request.QueryString[ "page"]);
}
int startIndex = page * pagecount + 1;
int endIndex = startIndex + pagecount - 1;
DataTable dt = IPDAO.getPageDatatable(startIndex, endIndex);
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
}
}
{
public int count; //数据条数
public int page = 1; //当前页
public int pagecount = 5; //每页显示数据条数
protected void Page_Load( object sender, EventArgs e)
{
if (!IsPostBack)
{
count = IPDAO.getCount();
Bind();
}
}
public void Bind()
{
if (Request.QueryString[ "page"] == null)
{
page = 1;
}
else
{
page = int.Parse(Request.QueryString[ "page"]);
}
int startIndex = page * pagecount + 1;
int endIndex = startIndex + pagecount - 1;
DataTable dt = IPDAO.getPageDatatable(startIndex, endIndex);
this.Repeater1.DataSource = dt.DefaultView;
this.Repeater1.DataBind();
}
}
这里我没有将读数据库的代码放在这里,我想这个也是极其简单的,这里就不贴出来了,下面我将分页存储过程贴一下:
ALTER
PROCEDURE [dbo].[P_GetPagedOrders2005]
(@startIndex INT,
@endindex INT
)
AS
select * from ( SELECT ROW_NUMBER() OVER( ORDER BY IPid DESC) AS rownum,
[IPid],[IPFrom],[IPTo],[IPLocation],[IPCity],[IPToNumber],[IPFromNumber] from IPInfo) as U
WHERE rownum between @startIndex and @endIndex
(@startIndex INT,
@endindex INT
)
AS
select * from ( SELECT ROW_NUMBER() OVER( ORDER BY IPid DESC) AS rownum,
[IPid],[IPFrom],[IPTo],[IPLocation],[IPCity],[IPToNumber],[IPFromNumber] from IPInfo) as U
WHERE rownum between @startIndex and @endIndex
这就是用ROW_NUMBER写的存储过程,简单吧,当然要注意需要传的两个参数:
int startIndex = page * pagecount + 1;
int endIndex = startIndex + pagecount - 1;
int endIndex = startIndex + pagecount - 1;
开始索引,结束索引,OK了!