编程论坛
注册
登录
编程论坛
→
ASP.NET技术论坛
asp.net Datalist如何分页显示
闫温学
发布于 2008-04-15 09:54, 3552 次点击
Datalist链接数据库不是手写代码,是在控件中选择的链接数据源,使用这种方式怎样进行分页呢。。。。
加群16446606
5 回复
#2
残影留香
2008-04-15 12:39
DataList本身没有封装PageDataSouce这个类,所以只能手写,而GridView就可以
#3
xqyy
2008-04-15 15:13
可以用dataset实现分页,只不过这样的话数据量过大时影响效率,另一种是用存储存过程,对于access以前写过一个分页的类,封装过,要有话可以告诉你实现原理。
#4
闫温学
2008-04-15 20:45
多谢了,我看了教程,是使用sqlserver的,我想使用access数据库,但没有这方面的教程,并且他们之间的差别还很大。
#5
c3300
2008-04-16 00:08
用存储过程吧,不过印象里好象要写麻烦的代码
#6
lixiang5
2008-11-09 18:59
利用PagedDataSource类实现datalist 分页功能
PagedDataSource类封装数据绑定控件(如 DataGrid、GridView、DetailsView 和 FormView)的与分页相关的属性,以允许该控件执行分页操作。无法继承此类。
AllowCustomPaging 获取或设置一个值,指示是否在数据绑定控件中启用自定义分页。
AllowPaging 获取或设置一个值,指示是否在数据绑定控件中启用分页。
AllowServerPaging 获取或设置一个值,指示是否启用服务器端分页。
Count 获取要从数据源使用的项数。
CurrentPageIndex 获取或设置当前页的索引。
DataSource 获取或设置数据源。
DataSourceCount 获取数据源中的项数。
FirstIndexInPage 获取页面中显示的首条记录的索引。
IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
IsFirstPage 获取一个值,该值指示当前页是否是首页。
IsLastPage 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled 获取一个值,该值指示是否启用分页。
IsReadOnly 获取一个值,该值指示数据源是否是只读的。
IsServerPagingEnabled 获取一个值,指示是否启用服务器端分页支持。
IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount 获取显示数据源中的所有项所需要的总页数。
PageSize 获取或设置要在单页上显示的项数。
SyncRoot 获取可用于同步集合访问的对象。
VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。
ps.AllowPaging = true;
//每页显示10条数据
ps.PageSize = 10;
//设置当前页的索引
ps.CurrentPageIndex = nPage - 1;
if (nPage == 1) //等于第一页
{
this.First.Enabled = false;//不显示第一页按钮
this.Front.Enabled = false;//不显示上一页按钮
}
if (nPage == ps.PageCount) //等于最后一页
{
this.Next.Enabled = false;//不显示下一页
this.Last.Enabled = false;//不显示最后一页
}
this.lPage.Text = Convert.ToString(ps.PageCount);
this.dl2.DataSource = ps;
//设置数据源的关键字段
this.dl2.DataKeyField = "ID";
dl2.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
}
protected void First_Click(object sender, EventArgs e)
{
laPage.Text = "1";//设置当前页为1
}
protected void Front_Click(object sender, EventArgs e)
{
//设置当前页减1
labPage.Text = Convert.ToString(Convert.ToInt32(laPage.Text) - 1);
}
protected void Next_Click(object sender, EventArgs e)
{
//设置当前页加1
lab.Text = Convert.ToString(Convert.ToInt32(laPage.Text) + 1);
}
protected void Last_Click(object sender, EventArgs e)
{
//设置当前页为最后一页
laPage.Text = labBackPage.Text;
}
}
1