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();
}
新的一年里,祝大家健健康康,平平安安,不需要有多么完美,只要每天在进步每天挺快乐,这样就够了。淡淡的幸福,一起加油。