找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 295|回复: 2

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

[复制链接]
发表于 2009-3-16 16:42:53 | 显示全部楼层 |阅读模式 IP:江苏扬州
这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个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();
发表于 2010-2-1 20:05:06 | 显示全部楼层 IP:武汉大学
那个贴子 让它沉下去吧! 不要啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 07:23 , Processed in 0.252975 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表