zoukankan      html  css  js  c++  java
  • 做个DataList 可分页的数据源

    这个数据源,分两部分,一是从数据类中调出数据,然后在本数据源中对分页参数以及页面分页辅助控件进行操作!在前面有三个控件控制翻页,一个下拉列表,两个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"];
        }
    下面方法使用的数据源就是上面的这个
        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();
        }
  • 相关阅读:
    LeetCode 1672. 最富有客户的资产总量
    LeetCode 455. 分发饼干
    Linux上安装docker并设置免sudo权限与国内镜像源
    Java后端期末复习
    Windows 10 家庭版开启本地安全策略 关闭管理员权限提升
    C语言中两种交换变量值方法的速度测试
    jQuery动态生成元素无法绑定事件的解决办法
    JQuery绑定事件处理动态添加的元素
    Socket通信服务端和客户端总结
    js传函数指针
  • 原文地址:https://www.cnblogs.com/thcjp/p/428781.html
Copyright © 2011-2022 走看看