1、参考示例
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="newslist.aspx.cs" Inherits="newslist"
%>

<!
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
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
table
>
<
tr
>
<
td
style
="width: 618px"
>
<
asp:Label
ID
="Label2"
runat
="server"
Text
="Label"
Width
="427px"
></
asp:Label
></
td
>
</
tr
>
<
tr
>
<
td
style
="width: 618px; height: 223px"
>
<
asp:DataList
ID
="DataList1"
runat
="server"
Width
="615px"
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
style
="width: 25px; height: 22px; color: blue;"
>
•
</
td
>
<
td
style
="width: 1552px; height: 22px"
>

<
asp:LinkButton
ID
="LinkButton1"
runat
="server"
>
<%
...
#DataBinder.Eval(Container.DataItem,"title")
%>
</
asp:LinkButton
></
td
>
<
td
style
="width: 438px; height: 22px"
>

<
asp:Label
ID
="Label1"
runat
="server"
>
<%
...
#((DateTime)DataBinder.Eval(Container.DataItem, "adddate")).ToShortDateString()
%>
</
asp:Label
></
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
asp:DataList
></
td
>
</
tr
>
<
tr
>
<
td
style
="width: 618px; text-align: center;"
>
<
asp:Label
ID
="lbpage"
runat
="server"
Text
="Label"
></
asp:Label
>
<
asp:LinkButton
ID
="lbfirst"
runat
="server"
CommandName
="first"
OnCommand
="linkbuttoncmd"
>
首页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="lbprev"
runat
="server"
CommandName
="prev"
OnCommand
="linkbuttoncmd"
>
上一页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="lbnext"
runat
="server"
CommandName
="next"
OnCommand
="linkbuttoncmd"
>
下一页
</
asp:LinkButton
>
<
asp:LinkButton
ID
="lblast"
runat
="server"
CommandName
="last"
OnCommand
="linkbuttoncmd"
>
末页
</
asp:LinkButton
>
<
asp:TextBox
ID
="tb"
runat
="server"
Width
="46px"
></
asp:TextBox
>
<
asp:LinkButton
ID
="lbjump"
runat
="server"
CommandName
="jump"
OnCommand
="linkbuttoncmd"
>
跳转
</
asp:LinkButton
></
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
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;
using
System.Data.SqlClient;

public
partial
class
newslist : System.Web.UI.Page

...
{
BaseClass bc=new BaseClass();
pagechange pc = new pagechange();
string strstyle;


protected void Page_Load(object sender, EventArgs e)

...{
if (!IsPostBack)

...{
int n = Convert.ToInt32(Request.QueryString["id"]);
switch (n)

...{
case 1: strstyle = "type='企业新闻'";
Label2.Text = "足不出户->企业新闻";
break;
case 2: strstyle = "type='行业新闻'";
Label2.Text = "足不出户->行业新闻";
break;
case 3: strstyle = "type='社会新闻'";
Label2.Text = "足不出户->社会新闻";
break;
default: strstyle = "type like '%%'";
Label2.Text = "所有新闻";
break;
}


pc.cmd = "select count(*) as count from tbnews where " + strstyle;
pc.RecordCount();
pc.PageCount();
pc.sql = "select * from tbnews where " + strstyle;
pc.databind(DataList1, lbprev, lbnext, lbpage);


//与 Session 的重要区别有两个:
//第一、ViewState 保存的对象不能跨页使用,仅限当前页面使用。Session 对象则可以所有页面共享使用。
//第二、Session 的变量存储在服务器上,ViewState 存储在当前页面中。
ViewState["pagecount"] = pc.pagecount;//ViewState 保存的对象不能跨页使用,仅限当前页面使用.而
ViewState["currentpage"] = pc.currentpage;
ViewState["sql"] = pc.sql;
}
else

...{
pc.pagecount = int.Parse(ViewState["pagecount"].ToString());
pc.currentpage = int.Parse(ViewState["currentpage"].ToString());
pc.sql = ViewState["sql"].ToString();
}
}


protected void linkbuttoncmd(Object sender, CommandEventArgs e)//自己编写的按钮点击事件

...{
switch (e.CommandName)

...{
case "first":
pc.currentpage = 0;
break;
case "prev":

if (pc.currentpage > 0) ...{ pc.currentpage = pc.currentpage - 1; }
break;
case "next":

if (pc.currentpage < pc.pagecount - 1) ...{ pc.currentpage = pc.currentpage + 1; }
break;
case "last":
pc.currentpage = pc.pagecount - 1;
break;
case "jump":
if (tb.Text.Trim() == "" || int.Parse(tb.Text.Trim()) < 0 & int.Parse(tb.Text.Trim()) > pc.pagecount - 1)

...{
return;
}
else

...{
pc.currentpage = int.Parse(tb.Text.Trim()) - 1;
}
break;
}
ViewState["currentpage"] = pc.currentpage;
pc.databind(DataList1, lbprev, lbnext, lbpage);
}


protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

...{
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
Response.Write("<script language=javascript>window.open('showNews.aspx?id=" + id + "','','width=520,height=260')</script>");
}
}

using System;
using System.Data;
using System.Configuration;
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 pagechange()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//定义有关的属性
public int recordcount
{
get { return _recordcount; }
set { _recordcount = value; }
}
public int pagecount
{
get { return _pagecount; }
set { _pagecount = value; }
}
//创建获得记录总数的方法
public int RecordCount()
{
try
{
cnn.Open();
SqlCommand sqlcmd = new SqlCommand(cmd, cnn);
SqlDataReader sr = sqlcmd.ExecuteReader();//将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
if (sr.Read())//使 SqlDataReader 前进到下一条记录。SqlDataReader 的默认位置在第一条记录的前面。读取到最后一条记录的后面返回false.
{
recordcount = int.Parse(sr["count"].ToString());
sr.Close();
return recordcount;
}
else
{
recordcount = 0;
return recordcount;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cnn.Close();
}
}
//创建获得页数的方法
public int PageCount()
{
try
{
if (recordcount % pagesize == 0)
{
pagecount = recordcount / pagesize;
return pagecount;
}
else
{
pagecount = recordcount / pagesize + 1;
return pagecount;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
//绑定数据
public void databind(DataList dl, LinkButton lbprev, LinkButton lbnext, Label lb)
{
try
{
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, cnn);
DataSet ds = new DataSet();
int startindex = pagesize * currentpage;//每页的第一条记录的索引
da.Fill(ds, startindex, pagesize, "tbnews");
//DataAdapter的Fill方法的重载形式,即将从da的startinde索引位置开始的pagesize条记录添加到内存ds名为 "tbNews"的表中。
dl.DataSource = ds.Tables[0].DefaultView;//相当于dl.DataSource = ds.Tables["tbnews"].DefaultView;
dl.DataKeyField = "id";
dl.DataBind();
lbprev.Enabled = true;
lbnext.Enabled = true;
if (currentpage == 0)
{
lbprev.Enabled = false;
}
if (currentpage == pagecount - 1)
{
lbnext.Enabled = false;
}
int page = currentpage + 1;//返回当前页号,因为页是基于索引0的,所以要加1,才符合一般的习惯
lb.Text = page.ToString() + " of " + pagecount.ToString();
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="News_test" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 32px; WIDTH: 752px; POSITION: absolute; TOP: 16px; HEIGHT: 312px" cellSpacing="0" cellPadding="0" width="752" border="0">
<TR>
<TD style="HEIGHT: 29px"><FONT">宋体">DataList分页技术和超级链接</FONT></TD>
</TR>
<TR>
<TD style="HEIGHT: 252px">
<asp:datalist id="DataList1" runat="server" Width="576px" Height="96px">
<HeaderTemplate>
定单编号<td>
员工编号<td>
定单日期<td>
运费<td>
运往所在城市
</HeaderTemplate>
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 32px; WIDTH: 752px; POSITION: absolute; TOP: 16px; HEIGHT: 312px" cellSpacing="0" cellPadding="0" width="752" border="0">
<TR>
<TD style="HEIGHT: 29px"><FONT">宋体">DataList分页技术和超级链接</FONT></TD>
</TR>
<TR>
<TD style="HEIGHT: 252px">
<asp:datalist id="DataList1" runat="server" Width="576px" Height="96px">
<HeaderTemplate>
定单编号<td>
员工编号<td>
定单日期<td>
运费<td>
运往所在城市
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"OrderID")%> <td>
<%# DataBinder.Eval(Container.DataItem,"CustomerID")%> <td>
<%# DataBinder.Eval(Container.DataItem,"OrderDate")%> <td>
<%# DataBinder.Eval(Container.DataItem,"Freight")%> <td>
<%# DataBinder.Eval(Container.DataItem,"ShipCity")%>
</ItemTemplate>
</asp:datalist>
</TD>
</TR>
<TR>
<TD><FONT">宋体">
<%# DataBinder.Eval(Container.DataItem,"OrderID")%> <td>
<%# DataBinder.Eval(Container.DataItem,"CustomerID")%> <td>
<%# DataBinder.Eval(Container.DataItem,"OrderDate")%> <td>
<%# DataBinder.Eval(Container.DataItem,"Freight")%> <td>
<%# DataBinder.Eval(Container.DataItem,"ShipCity")%>
</ItemTemplate>
</asp:datalist>
</TD>
</TR>
<TR>
<TD><FONT">宋体">
<asp:linkbutton id="FirstLB" runat="server" OnCommand="LinkButton_Click" CommandName="first">第一页</asp:linkbutton>
<asp:linkbutton id="PreviousLB" runat="server" OnCommand="LinkButton_Click" CommandName="prev">上一页</asp:linkbutton>
<asp:linkbutton id="NextLB" runat="server" OnCommand=LinkButton_Click CommandName="next">下一页</asp:linkbutton>
<asp:linkbutton id="EndLB" runat="server" OnCommand=LinkButton_Click CommandName="end">最后一页</asp:linkbutton>
总<asp:label id="TotalLbl" runat="server"></asp:label>页 当前第<asp:label id="CurrentLbl" runat="server"></asp:label>页
<asp:linkbutton id="JumpLB" runat="server" OnCommand=LinkButton_Click CommandName="jump">跳到</asp:linkbutton>第
<asp:textbox id="TextBox1" runat="server" Width="90px"></asp:textbox>
页</FONT></TD>
</TR>
</TABLE>
</div>
</form>
</body>
</html>
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;
<asp:linkbutton id="PreviousLB" runat="server" OnCommand="LinkButton_Click" CommandName="prev">上一页</asp:linkbutton>
<asp:linkbutton id="NextLB" runat="server" OnCommand=LinkButton_Click CommandName="next">下一页</asp:linkbutton>
<asp:linkbutton id="EndLB" runat="server" OnCommand=LinkButton_Click CommandName="end">最后一页</asp:linkbutton>
总<asp:label id="TotalLbl" runat="server"></asp:label>页 当前第<asp:label id="CurrentLbl" runat="server"></asp:label>页
<asp:linkbutton id="JumpLB" runat="server" OnCommand=LinkButton_Click CommandName="jump">跳到</asp:linkbutton>第
<asp:textbox id="TextBox1" runat="server" Width="90px"></asp:textbox>
页</FONT></TD>
</TR>
</TABLE>
</div>
</form>
</body>
</html>
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;
using System.Data.SqlClient;
public partial class News_test : System.Web.UI.Page
{
int CurrentPage;//当前页数
int PageSize; //每页条数
int PageCount; //总页数
int RecordCount;//总条数
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
{
int CurrentPage;//当前页数
int PageSize; //每页条数
int PageCount; //总页数
int RecordCount;//总条数
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
PageSize = 10;//每页10条记录
if (!Page.IsPostBack)
{
CurrentPage = 0;//当前页习惯设为0
ViewState["PageIndex"] = 0;//页索引也设为0
if (!Page.IsPostBack)
{
CurrentPage = 0;//当前页习惯设为0
ViewState["PageIndex"] = 0;//页索引也设为0
//计算总共有多少记录
RecordCount = CalculateRecord();
RecordCount = CalculateRecord();
//计算总共有多少页
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1;
}
if (RecordCount % PageSize == 0)
{
PageCount = RecordCount / PageSize;
}
else
{
PageCount = RecordCount / PageSize + 1;
}
this.TotalLbl.Text = PageCount.ToString();//显示总页数
ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session
ViewState["PageCount"] = PageCount;//会话session 对整个 application 有效 ,而视图状态 viewstate相当于某个页面的 session
this.DataListBind();//不可以放在初始化条件之前就绑定,那样的话,如果仅有一页的数据,“下一页”页仍然显示
}
}
}
//计算总共有多少条记录
private int CalculateRecord()
{
try
{
int recordCount;
SqlConnection con = new SqlConnection("server=127.0.0.1;database=Northwind;uid=sa;pwd=sa");//数据库使用Northwind;
con.Open();
private int CalculateRecord()
{
try
{
int recordCount;
SqlConnection con = new SqlConnection("server=127.0.0.1;database=Northwind;uid=sa;pwd=sa");//数据库使用Northwind;
con.Open();
string sql = "select count(*) as count from Orders";
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader sdr = cmd.ExecuteReader();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
recordCount = Int32.Parse(sdr["count"].ToString());
}
{
recordCount = Int32.Parse(sdr["count"].ToString());
}
else
{
recordCount = 0;
}
{
recordCount = 0;
}
sdr.Close();
con.Close();
return recordCount;
}
con.Close();
return recordCount;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
{
throw new Exception(ex.Message);
}
}
//将数据绑定到Datalist控件
public void DataListBind()
{
try
{
int StartIndex = CurrentPage * PageSize;//设定导入的起终地址
string sql = "select * from Orders";
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection("server=127.0.0.1;database=Northwind;uid=sa;pwd=sa");
con.Open();
public void DataListBind()
{
try
{
int StartIndex = CurrentPage * PageSize;//设定导入的起终地址
string sql = "select * from Orders";
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection("server=127.0.0.1;database=Northwind;uid=sa;pwd=sa");
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(ds, StartIndex, PageSize, "orders");//这是sda.Fill方法的第一次重载,里面的变量分别是数据集DataSet ,开始记录数StartRecord,最大的记录数MaxRecord,数据表名TableName
this.DataList1.DataSource = ds.Tables["orders"].DefaultView;
this.DataList1.DataBind();
this.PreviousLB.Enabled = true;
this.NextLB.Enabled = true;
if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用
if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用
this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数
sda.Fill(ds, StartIndex, PageSize, "orders");//这是sda.Fill方法的第一次重载,里面的变量分别是数据集DataSet ,开始记录数StartRecord,最大的记录数MaxRecord,数据表名TableName
this.DataList1.DataSource = ds.Tables["orders"].DefaultView;
this.DataList1.DataBind();
this.PreviousLB.Enabled = true;
this.NextLB.Enabled = true;
if (CurrentPage == (PageCount - 1)) this.NextLB.Enabled = false;//当为最后一页时,下一页链接按钮不可用
if (CurrentPage == 0) this.PreviousLB.Enabled = false;//当为第一页时,上一页按钮不可用
this.CurrentLbl.Text = (CurrentPage + 1).ToString();//当前页数
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
{
throw new Exception(ex.Message);
}
}
public void LinkButton_Click(Object sender, CommandEventArgs e)//自己编写的按钮点击事件
{
CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引
PageCount = (int)ViewState["PageCount"];//获得总页数
{
CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引
PageCount = (int)ViewState["PageCount"];//获得总页数
string cmd = e.CommandName;
//判断cmd,以判定翻页方向
switch (cmd)
{
case "prev"://上一页
if (CurrentPage > 0) CurrentPage--;
break;
{
case "prev"://上一页
if (CurrentPage > 0) CurrentPage--;
break;
case "next":
if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页
break;
if (CurrentPage < (PageCount - 1)) CurrentPage++;//下一页
break;
case "first"://第一页
CurrentPage = 0;
break;
CurrentPage = 0;
break;
case "end"://最后一页
CurrentPage = PageCount - 1;
break;
CurrentPage = PageCount - 1;
break;
case "jump"://跳转到第几页
if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回
{
return;
}
else
{
CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1;
break;
}
}
ViewState["PageIndex"] = CurrentPage;//获得当前页
if (this.TextBox1.Text.Trim() == "" || Int32.Parse(this.TextBox1.Text.Trim()) > PageCount)//如果输入数字为空或超出范围则返回
{
return;
}
else
{
CurrentPage = Int32.Parse(this.TextBox1.Text.ToString()) - 1;
break;
}
}
ViewState["PageIndex"] = CurrentPage;//获得当前页
this.DataListBind();//重新将DataList绑定到数据库
}
}
2、自己改写示例










































































































































































pagechange类

using System.Data;
using System.Configuration;
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;
using System.Data.SqlClient;
/// <summary>
/// pagechange 的摘要说明
/// </summary>
public class pagechange
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
public int _recordcount;//定义记录数
public int _pagecount;//定义页数
public string _cmd;
public string _sql;
public int _pagesize = 10;//每页显示的记录数
public int _currentpage = 0;//当前页的索引
/// pagechange 的摘要说明
/// </summary>
public class pagechange
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
public int _recordcount;//定义记录数
public int _pagecount;//定义页数
public string _cmd;
public string _sql;
public int _pagesize = 10;//每页显示的记录数
public int _currentpage = 0;//当前页的索引
public pagechange()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//定义有关的属性
public int recordcount
{
get { return _recordcount; }
set { _recordcount = value; }
}
public int pagecount
{
get { return _pagecount; }
set { _pagecount = value; }
}
public string cmd
{
get { return _cmd; }
set { _cmd = value; }
}
public string sql
{
get { return _sql; }
set { _sql = value; }
}
public int pagesize
{
get { return _pagesize; }
set { _pagesize = value; }
}
{
get { return _cmd; }
set { _cmd = value; }
}
public string sql
{
get { return _sql; }
set { _sql = value; }
}
public int pagesize
{
get { return _pagesize; }
set { _pagesize = value; }
}
public int currentpage
{
get { return _currentpage; }
set { _currentpage = value; }
}
{
get { return _currentpage; }
set { _currentpage = value; }
}
//创建获得记录总数的方法
public int RecordCount()
{
try
{
cnn.Open();
SqlCommand sqlcmd = new SqlCommand(cmd, cnn);
SqlDataReader sr = sqlcmd.ExecuteReader();//将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
if (sr.Read())//使 SqlDataReader 前进到下一条记录。SqlDataReader 的默认位置在第一条记录的前面。读取到最后一条记录的后面返回false.
{
recordcount = int.Parse(sr["count"].ToString());
sr.Close();
return recordcount;
}
else
{
recordcount = 0;
return recordcount;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cnn.Close();
}
}
//创建获得页数的方法
public int PageCount()
{
try
{
if (recordcount % pagesize == 0)
{
pagecount = recordcount / pagesize;
return pagecount;
}
else
{
pagecount = recordcount / pagesize + 1;
return pagecount;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
//绑定数据
public void databind(DataList dl, LinkButton lbprev, LinkButton lbnext, Label lb)
{
try
{
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, cnn);
DataSet ds = new DataSet();
int startindex = pagesize * currentpage;//每页的第一条记录的索引
da.Fill(ds, startindex, pagesize, "tbnews");
//DataAdapter的Fill方法的重载形式,即将从da的startinde索引位置开始的pagesize条记录添加到内存ds名为 "tbNews"的表中。
dl.DataSource = ds.Tables[0].DefaultView;//相当于dl.DataSource = ds.Tables["tbnews"].DefaultView;
dl.DataKeyField = "id";
dl.DataBind();
lbprev.Enabled = true;
lbnext.Enabled = true;
if (currentpage == 0)
{
lbprev.Enabled = false;
}
if (currentpage == pagecount - 1)
{
lbnext.Enabled = false;
}
int page = currentpage + 1;//返回当前页号,因为页是基于索引0的,所以要加1,才符合一般的习惯
lb.Text = page.ToString() + " of " + pagecount.ToString();
}
catch (Exception ex)
{ throw new Exception(ex.Message); }
finally
{ cnn.Close(); }
}
catch (Exception ex)
{ throw new Exception(ex.Message); }
finally
{ cnn.Close(); }
}
}
