当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET技巧:做个DataList可分页的数据源

ASP.NET
Asp.net Ajax--Calendar控件使用
让ASP.NET程序自动为URL加上超级链接
ASP.NET2.0MasterPage技巧总结
asp.net读取数据库乱码的解决完全方案
asp.net中生成缩略图并添加版权
ASP.Net用MD5和SHA1加密的几种方法
asp.net客户端回调功能的实现机制
ASP.NET2.0中控件的简单异步回调
用在JavaScript的RequestHelper
用Java发送图文并茂的HTML邮件
基于.NET平台的分层架构实战(一) 综述
基于.NET平台的分层架构实战(二)需求分析与数据库设计
基于.NET平台的分层架构实战(三)架构概要设计
基于.NET平台的分层架构实战(四)实体类的设计与实现
近期的几个ASP.NET开发经验总结和收集
ASP.NET中的状态管理
asp.net基础知识介绍
对数据访问层第一种实现(Acc+SQL)的重构
.NET初学者推荐课程 asp.net错误代码大全
在.net中如何利用数据工厂实现多数据库的操作

ASP.NET技巧:做个DataList可分页的数据源


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 98 ::
收藏到网摘: n/a

  这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个LinkButton!

  下面 fill() 方法调用很简单,在页面中要重新绑定的地方 写上 fill() 就可以了,呵呵!但是一定要写哦,例如翻页动作执行后!

  下面是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();
}