ASP.Net – Phân trang trên DataList

ASP.Net – Phân trang trên DataList

Chào mọi người như đã đề cập ở bài trước viết về cách đổ dữ liệu lên DataList hôm nay mình muốn chia sẻ với mọi người cách phân trang DataList trong ASP.Net phần này được xem là quan trọng và cần thiết trong mọi website cũng như WEB ASP.Net

Khi trình bày sản phẩm, bài viết hay cách doanh mục đầu tư… với số lượng bài viết lớn thì trong một trang thì không thể nào hiển thị hết được giải pháp của ta là phân trang, phân trang trong WEB ASP.Net liên quan đến nhiều vấn đề, các đối tượng và sự liên kết của chúng lại với nhau. Sau đây là một cách làm đơn giản về phân trang.

Phân trang trang ASP.Net

Các bạn phải đọc bài trước rồi bài hôm nay mới có thể thực hiện tốt được, đầu tiên phía dưới datalist vừa tạo hôm trước chúng ta trình bày một giao diện như sau:

Giao diện phân trang

Giao diện phân trang

Ta có các button về trang đầu, trang trước đó, sau đó, trang cuối cùng và một textbox hiển thị số trang đang hiện hành. mỗi button đều có sự kiện OnClick và bạn phải đặt tên cho các button, textbox này để tiện cho lúc làm việc.

protected void bt1_Click(object sender, EventArgs e)

{


}

protected void bt2_Click(object sender, EventArgs e)

{


}

protected void bt3_Click(object sender, EventArgs e)

{


}


protected void bt4_Click(object sender, EventArgs e)

{


}

Đó là sự kiện OnClick của 4 button trên, bây giờ mình sẽ viết code cho load dữ liệu lên trên DalaList có khác so với lần trước.

static PagedDataSource p = new PagedDataSource();

public static int intSTT;

public static int trang_thu = 0;

Ở đây ta khai báo một đối tượng p của lớp PagedDataSource để quản lý trạng thái của trang, biến int intSTT để lưu số thứ tự, và biến trang_thu lưu trang đang hiện hành. Chú ý các biến trên đều là biến static.

Sau đó viết hàm load data như sau:

public void load_data()
    {

            string sql = "select top 20 ProID, ProName, Price, VAT, Description,URLImages, Visible from Products order by UpdateDate DESC";

            p.DataSource = data.get(sql).Tables[0].DefaultView;

            p.PageSize = 5;

            p.CurrentPageIndex = trang_thu;

            p.AllowPaging = true;


            bt1.Enabled = true; bt2.Enabled = true; bt3.Enabled = true; bt4.Enabled = true;


            if (p.IsFirstPage == true)//neu la dau.

            {

                bt1.Enabled = false;//neu la trang dau thi hai nut mo di.

                bt2.Enabled = false;

                bt3.Enabled = true;//Hai nut sau sang len.

                bt4.Enabled = true;

            }


            if (p.IsLastPage == true)//neu la cuoi

            {

                bt1.Enabled = true;//nguoc lai

                bt2.Enabled = true;

                bt3.Enabled = false;

                bt4.Enabled = false;

            }


            txtTrang.Text = (trang_thu + 1) + " / " + p.PageCount;


            dlSanPham.DataSource = p;

            dlSanPham.DataBind();

    }

Giải thích:

  • PageSize: là số lượng bài hiển thị trong một trang
  • AllowPaging = true: cho phép thực hiện phân trang
  • IsFirstPage: là trang đầu (Thì hai button trước và trang đầu sẽ ở trạng thái ẩn)
  • IsLastPage: Là trang cuối (Thì hai button sau và trang cuối sẽ ở trạng thái ẩn)
  • PageCount: Đếm số trang được phân ra

Sau đó ta sẽ đi đến viết sự kiện OnClick cho từng Button

protected void bt1_Click(object sender, EventArgs e)

    {

        trang_thu = 0;

        load_data();

    }

    protected void bt2_Click(object sender, EventArgs e)

    {

        trang_thu--;

        load_data();

    }

    protected void bt3_Click(object sender, EventArgs e)

    {

        trang_thu++;

        load_data();

    }


    protected void bt4_Click(object sender, EventArgs e)

    {

        trang_thu = p.PageCount - 1;

        load_data();

    }

Ở mỗi trạng thái sẽ có những tình huống ứng với nó, do đó bạn suy nghĩ cách để đúng với thực tế. Giao diện chúng ta sẽ được như sau:

ASP.Net – Phân trang trên DataList

Demo phân trang DataList trong ASP.Net

Kết luận: Đó là cách mình demo giải thuật phân trang, có thể sẽ sử dụng được tuy nhiên chắc có một vài lỗi nào đó các bạn ngâm cú thêm nha! Chúng ta có thể thay các Button thành những Image Button cho đẹp và chuyên nghiệp hơn. Chúc mọi người thành công!

Bạn thấy bài viết này như thế nào?: 
Average: 9 (1 vote)
Ảnh của Tommy Tran

Tommy Tran owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy
  • Phone/Zalo: (+84) 944 225 212
  • WhatsApp: (+84) 944 225 212
  • Line Messenger: (+84) 944 225 212
  • Email: thuy[email protected]
  • Telegram Messenger: https:/t.me/tommytran0401

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Gửi video từ cõi chết lên Facebook

Gửi video từ cõi chết lên Facebook

Một ứng dụng Facebook mới toanh sẽ mang đến cho người dùng cơ hội gửi đi thông điệp cuối cùng… sau khi chết.

Page Authority là gì?

Page Authority là gì?

Page Authority (PA) dự đoán khả năng có thể xếp hạng tốt cho một trang web bất kỳ mà không cần phải quan tâm đến nội dung. Một trang web có Page Authority càng cao thì cơ hội xếp hạng cho trang web ấy càng cao.

Android

4 Game đối kháng miễn phí hay trên Android

Nếu bạn là fan hâm mộ lớn của trò chơi chiến đấu, sau đó bạn có thể thưởng thức sở thích của bạn trên điện thoại Android. Bạn có thể tìm thấy rất nhiều trò chơi đối kháng miễn phí trên Google Play dành cho Android.

Wordpress Freelancer

 

Wordpress Freelancer