程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET技巧:做個DataList可分頁的數據源

ASP.NET技巧:做個DataList可分頁的數據源

編輯:ASP.NET基礎

  這個數據源,分兩部分,一是從數據類中調出數據,然後在本數據源中對分頁參數以及頁面分頁輔助控件進行操作!在前面有三個控件控制翻頁,一個下拉列表,兩個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();
    }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved