用 datalist控件进行分页(28)

简介:
在开发网站时,常常需要在页面中显示一些信息,有时候显示的比较多,这时候我们就会用到分页,于是可以 通过datalist控件中的数据绑定,分页显示该网页的信息。datalist控件的分页实现是借助pageddatasource类来实现的,该类封 装了数据控件的分页属性,其常用属性及说明如下:
属性 说明
AllowPaging 设置是否分 页
AllowCustomPaging 设置是否启用自定义分页
DataSource 设置填充控件的源数据
PageSize 设置在控件上每页显示的项数
PageCount 设置总页数
FrstIndexPage 获取页 中的第一个索引
IsFirstPage 获取一个 值,指示该页是否为首页
IsLastPage 获取一个值, 指示该页是否为最后一页
   
在主页页面的page_load事件中,调用用户自定义的dlBind方法对 datalist控件进行数据绑定并分页,page_load事件的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
dlBind()
    }

该页的page_load事件中调用自定义dlBind,dlBind方法为自定义的无返回值类型方法,该方法主要用来从数据库中查出符合指定条件 的记录,并绑定datalist控件中,然后通过设置pagedatasource类对象allowpaging属性为true。来实现datalist 控件的分页功能,dlBind方法代码如下:
#region 用户自定义bindDataList方法
/// <summary>
/// 该方法在DataList控件中实现分页功能
/// </summary>
public void bindDataList()
{
//将labPage控件显示的页数赋值给整型变量curpage中
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();//实例化一个PagedDataSource类对象
SqlConnection con = new SqlConnection(this.GetConStr());//连接数据库
con.Open();//打开数据库连接
string sqlstr = "select * from tb_tools";
SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();//实例化一个对象
MyAdapter.Fill(ds, "tb_tools");
ps.DataSource = ds.Tables["tb_tools"].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 2; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
this.lnkbtnUp.Enabled = true;//显示上一页按钮
this.lnkbtnNext.Enabled = true;//显示下一页按钮
this.lnkbtnBack.Enabled = true;//显示最后一页按钮
this.lnkbtnOne.Enabled = true;//显示第一页按钮
if (curpage == 1)
{
this.lnkbtnOne.Enabled = false;//不显示第一页按钮
this.lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
this.lnkbtnNext.Enabled = false;//不显示下一页按钮
this.lnkbtnBack.Enabled = false;//不显示最后一页按钮
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);//将分页的总页数赋值给labBackPage控件中
this.dlContent.DataSource = ps;//在dlContent控件中绑定ps分页数据源
this.dlContent.DataKeyField = "ID";//将主键传递给dlContent控件中
this.dlContent.DataBind();//将数据源绑定到dbContent控件中
con.Close();//关闭数据库连接
}
#endregion

当用户单击用于操作分页linkbutton控件时,程序根据当前页码执行指定操作。用于控制分页的linkbutton控件的click事件代 码:
 #endregion

protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";//将“1”赋值给labPage控件当中
this.bindDataList();//调用用户自定义bindDataList方法
}
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.bindDataList();//调用用户自定义bindDataList方法
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.bindDataList();//调用用户自定义bindDataList方法
}
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.bindDataList();//调用用户自定义bindDataList方法
做完后的效果图:
神舟龙效果


本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/332139,如需转载请自行联系原作者
相关文章
|
数据库
EasyUI-- datagrid分页详解
分页的英文是pagination,记住这个单词,因为会经常遇见。 在EasyUI框架下,datagrid使用分页简单到令人发指,只需要2点: 1,为table启用class=“easyui-datagrid”,这样table就成为了一个数据网格。 2,为table启用pagination=“true”,表示表格启用分页功能。
876 0
EasyUI-- datagrid分页详解
|
JSON 数据格式 开发者
EasyUI–下拉列表datalist详解
本篇主要介绍下拉列表控件的数据绑定和下拉列表选中项的获取。
1026 0
EasyUI–下拉列表datalist详解
|
数据库
分页控件的使用能不能再简单一点呢,能不能一个页面搞定所有的列表需求?
目的: 1、一个页面(DataList.aspx)可以显示多个模块的列表功能。      一般是有一个列表需求就需要一个aspx文件,如果有100个列表,那么就会有100个aspx文件,这么多的文件(包括.aspx.cs文件)里面的内容基本是一样的,这样写起来麻烦,管理起来也不容易,命名就是一个比较头痛的问题。
1073 0
|
.NET 开发框架 Go
GridView控件自定义分页的实现
前人栽树,后人乘凉,话不多说,代码如下:     实现方式一: .aspx: [c-sharp] view plain copy <form id="form1" runat="server">       <table style="width: 605px">         .
1432 0