第一种:
if(!IsPostBack)

{
// datatable=obj.BindDataGrid_First("Project_BindDataGrid_First");
// BindDataList();
datatable =obj.GetDataArrayList();

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource =datatable.DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;

//当前页面从Page查询参数获取
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;

objPds.CurrentPageIndex = CurPage-1;
// lblCurrentPage.Text = "Page: " + CurPage.ToString();

if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);

if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

this.DataList1.DataSource=objPds;
this.DataList1.DataBind();
}
}

第二种:

下面是db类中的ds方法

public static DataTable ds(string que)

{//返回一个装载了SQL制定留言的数据表,
OleDbConnection con = odb.con();
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand=new OleDbCommand(que,con);
DataSet ds = new DataSet();
oda.Fill(ds,"thc");
return ds.Tables["thc"];
con.Close();
}
下面方法使用的数据源就是上面的这个

private void fill()

{//做的一个方法,因为页内将有多次的绑定
//这里设置一个隐藏的Label,用与储存当前的页索引
int cup = Convert.ToInt32(pagelbl.Text);
PagedDataSource ps = new PagedDataSource();//NEW一个分页数据源
ps.DataSource = odb.ds("select * from guest order by id desc").DefaultView;//送一个SQL语句进去,确定该数据源的数据源,有点绕吧,呵呵
ps.AllowPaging = true;//允许分页
ps.PageSize = 2;//设置页的数量
ps.CurrentPageIndex = cup-1;
if (!IsPostBack)

{//判断页面是否第一次载入
for (int i = 1; i <= ps.PageCount; i++)

{//循环出页码
pageddl.Items.Add(i.ToString());
}
}
//下面主要是控制上下翻页按纽是否起用
pageup.Enabled = true;
pagedown.Enabled = true;
if (ps.IsFirstPage)

{//如果是最前页,上页按纽不可用
pageup.Enabled = false;
}
if (ps.IsLastPage)

{//如果是最后页,下页按纽不可用
pagedown.Enabled = false;
}
//设置页码下拉菜单当前选中的值
pageddl.SelectedItem.Text = cup.ToString();
//终于可以绑定给DataList了
DataList1.DataSource = ps;
DataList1.DataKeyField = "id";
DataList1.DataBind();
}

再下面是翻页事件的处理

protected void pageddl_SelectedIndexChanged(object sender, EventArgs e)

{//页码下拉菜单事件
pagelbl.Text = pageddl.SelectedItem.Text.ToString();
fill();
}
protected void pagedown_Click(object sender, EventArgs e)

{//下页事件
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)+1);
fill();
}
protected void pageup_Click(object sender, EventArgs e)

{//上页事件
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)-1);
fill();

第三种:
if(!IsPostBack)

{ //获取当前时间
this.labdaytime.Text=Convert.ToString(System.DateTime.Now);

pageSize =5;// 页大小
currentPage = 0; //当前页( 初始化当前页为第0页)
ViewState["CurrentPage"] = 0;
recordCount =obj.CalculateRecord(string.Empty); // 计算共有多少条记录
ViewState["RecordCount"] = recordCount;
pageCount=0;
pageCount = recordCount / pageSize; // 计算共有多少页
if (( recordCount % pageSize)>0)

{
pageCount++;
}

ViewState["PageCount"] = pageCount;

BindDataList();//绑定DATALIST

}

分页#region 分页
public void BindDataList()

{
int startPage;//开始的记录
startPage =currentPage * pageSize;
this.DataList2.DataSource =obj.SelectToDataSetFlag("sSQLText",startPage,pageSize,"aa",string.Empty);
this.DataList2.DataMember = "aa";
this.DataList2.DataBind();
Lab_CurrentPage.Text = (currentPage+1).ToString();//显示现在是第几页
Lab_PageCount.Text = ViewState["PageCount"].ToString();//显示一共是多少页
}
#endregion

首页#region 首页
private void Lb_First_Click(object sender, System.EventArgs e)

{
pageCount = (int)ViewState["PageCount"];
ViewState["CurrentPage"] = 0;
BindDataList();
}
#endregion

上一页#region 上一页
private void Lb_Prev_Click(object sender, System.EventArgs e)

{
pageCount = (int)ViewState["PageCount"];
if(currentPage>0)
currentPage--;
ViewState["CurrentPage"] = currentPage;
BindDataList();
}
#endregion

下一页#region 下一页
private void Lb_Next_Click(object sender, System.EventArgs e)

{
currentPage = (int)ViewState["CurrentPage"];
pageCount = (int)ViewState["PageCount"];
if((currentPage+1)<pageCount)
currentPage++;
ViewState["CurrentPage"] = currentPage;
BindDataList();
}
#endregion

末页#region 末页
private void Lb_Last_Click(object sender, System.EventArgs e)

{
currentPage = (int)ViewState["PageCount"]-1;
pageCount = (int)ViewState["PageCount"];
ViewState["CurrentPage"] = currentPage;
BindDataList();
}
#endregion

到第几页#region 到第几页
private void butgo_Click(object sender, System.EventArgs e)

{
int iGoPage=int.Parse(this.txtgoto.Text.Trim());
iGoPage--;
if (iGoPage>=(int)ViewState["PageCount"])

{
txtgoto.Text=((int)ViewState["CurrentPage"]+1).ToString();
return;
}
else if (iGoPage<0)

{
txtgoto.Text=((int)ViewState["CurrentPage"]+1).ToString();
return;
}
currentPage = (int)ViewState["CurrentPage"];
pageCount = (int)ViewState["PageCount"];
currentPage = iGoPage;
ViewState["CurrentPage"] = currentPage;
BindDataList();
}
#endregion

获取查询的数据集#region 获取查询的数据集
public DataSet SelectToDataSetFlag(string SQLText,int StartNum,int MaxNum,string DsFlag,string key)

{
SqlCommand myCommand = new SqlCommand(SQLText,myConnection);
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.Parameters.Add("@key",key);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = myCommand;
DataSet ds = new DataSet();
try

{
myConnection.Open();
da.Fill(ds,StartNum,MaxNum,DsFlag);
}
catch

{
return null;
}
finally

{
myConnection.Close();
}
return ds;
}
#endregion
posted on
2006-06-23 15:52
过江
阅读(
370)
评论()
收藏
举报