ASP.NET技巧:做個DataList可分頁的資料來源_實用技巧

來源:互聯網
上載者:User

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.