使用DataList控件绑定数据并实现分页
2016-02-16 10:03
465 查看
DataList控件是一种数据绑定控件,下面来介绍一下它与绑定有关的三个属性:
DataKeyField:获取或设置由DataSource属性指定的数据源中的键字段; DataKeys:获取存储在数据列表控件中的每个记录的键值; DataSource:获取或设置数据源,该数据源中包含用于填充控件中的项的值列表。
DataList控件的分页功能是借助 PagedDataSource类实现的,该类封装了数据控件的分页属性。
下面举一个例子,来展示使用DataList控件绑定数据并实现分页功能的主要代码:
//取得当前页的页码
int curpage = Convert.ToInt32(this.labPage.Text);
//使用PagedDataSource类实现DataList控件的分页功能
PagedDataSource ps = new PagedDataSource();
//获取数据集(公共类方法,通过Sql语句获取数据源)
DataSet ds = CC.GetDataSet("select * from tb_News where style='" + strStyle + "' order by issueDate Desc", "tbNews");
//给PagedDataSource对象设置数据源
ps.DataSource = ds.Tables["tbNews"].DefaultView;
//是否可以分页
ps.AllowPaging = true;
//显示的数量
ps.PageSize =16;
//取得当前页的页码
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);
//绑定DataList控件
this.dlNews.DataSource = ps;
this.dlNews.DataKeyField = "id";
this.dlNews.DataBind();
}
//第一页
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
//bind()方法为公共类的自定义方法,目的是为了当前界面的显示
this.bind();
}
//上一页
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.bind();
}
//下一页
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.bind();
}
//最后一页
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.bind();
}
新的一年里,祝大家健健康康,平平安安,不需要有多么完美,只要每天在进步每天挺快乐,这样就够了。淡淡的幸福,一起加油。
DataKeyField:获取或设置由DataSource属性指定的数据源中的键字段; DataKeys:获取存储在数据列表控件中的每个记录的键值; DataSource:获取或设置数据源,该数据源中包含用于填充控件中的项的值列表。
DataList控件的分页功能是借助 PagedDataSource类实现的,该类封装了数据控件的分页属性。
下面举一个例子,来展示使用DataList控件绑定数据并实现分页功能的主要代码:
//取得当前页的页码
int curpage = Convert.ToInt32(this.labPage.Text);
//使用PagedDataSource类实现DataList控件的分页功能
PagedDataSource ps = new PagedDataSource();
//获取数据集(公共类方法,通过Sql语句获取数据源)
DataSet ds = CC.GetDataSet("select * from tb_News where style='" + strStyle + "' order by issueDate Desc", "tbNews");
//给PagedDataSource对象设置数据源
ps.DataSource = ds.Tables["tbNews"].DefaultView;
//是否可以分页
ps.AllowPaging = true;
//显示的数量
ps.PageSize =16;
//取得当前页的页码
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);
//绑定DataList控件
this.dlNews.DataSource = ps;
this.dlNews.DataKeyField = "id";
this.dlNews.DataBind();
}
//第一页
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
//bind()方法为公共类的自定义方法,目的是为了当前界面的显示
this.bind();
}
//上一页
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.bind();
}
//下一页
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.bind();
}
//最后一页
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.bind();
}
新的一年里,祝大家健健康康,平平安安,不需要有多么完美,只要每天在进步每天挺快乐,这样就够了。淡淡的幸福,一起加油。
相关文章推荐
- more、less 和 most 的区别
- 十万条Access数据表分页的两个解决方法
- sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】
- 高效的mysql分页方法及原理
- asp又一个分页的代码例子
- SqlServer 2000、2005分页存储过程整理第1/3页
- ADO存取数据库时如何分页显示
- 透彻掌握ASP分页技术很详细的分析
- 一条SQL语句搞定Sql2000 分页
- 分页 SQLServer存储过程
- 实现SQL分页的存储过程代码
- C#实现DataList里面嵌套DataList的折叠菜单
- sql分页查询几种写法
- SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)
- mysql 分页优化解析
- 用ODBC的分页显示
- jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
- 一步步打造漂亮的新闻列表(无刷新分页、内容预览)第一步
- asp.net利用后台实现直接生成html分页的方法
- asp.net中如何调用sql存储过程实现分页