技术开发 频道

做个DataList可分页的数据源

【IT168技术文档】

    这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个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(); }


0
相关文章