• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ASP.NET技巧:做个DataList 可分页的数据源

发布: 2008-4-07 10:33 | 作者: 不详 | 来源: webjx.com | 查看: 29次 | 进入软件测试论坛讨论

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

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网