WEB开发网
开发学院WEB开发ASP.NET 做个DataList 可分页的数据源 阅读

做个DataList 可分页的数据源

 2006-06-19 17:09:13 来源:WEB开发网   
核心提示:这个数据源,分两部分,做个DataList 可分页的数据源,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,有点绕吧,呵呵 ps.AllowPaging = true;//允许分页 ps.PageSize = 2;//设置页的数量 ps.CurrentPa

这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个LinkButton!

关于更多类中数据操作的方法见 http://thcjp.cnblogs.com/archive/2006/06/18/428775.html 这篇

下面 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();
   }

Tags:DataList 数据源

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接