1. Giới thiệu
Trong quá trình làm việc với dữ liệu trong môi trường phát triển các ứng dụng web thì vấn đề phân trang là không tránh khỏi. Vì số lượng record (mẫu tin) nhiều cho nên chúng ta phải phân trang để chia nhỏ số lượng mẫu tin và đồng thời để website load nhanh hơn.
Hôm nay, chúng ta cùng nhau tìm hiểu cách phân trang trong môi trường .net nhé và cụ thể là trên đối tượng control gridview
2. Tài nguyên sử dụng
- Bạn sử dụng lại database tên làm northwind trong file đính kèm
- Sử dụng table customers để làm dữ liệu truy vấn
3. Thiết kế
Tạo một page tên paging.aspx
Thiết kế ứng dụng gồm một control gridview có id là gvCustomer
Một button có id là btnLoadCustomers và text là Load Customers
4. Coding
Tạo sự kiện click của button Load Customers bằng cách double click vào button này như sau
1
2
3
| protected void btnLoadCustomers_Click(object sender, EventArgs e) { } |
Viết function LoadCustomers() để load tất cả dữ liệu của bảng customers vào gridview
1
2
3
4
5
6
7
8
9
10
11
| private void LoadCustomers() { string conn = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True" ; SqlConnection sqlCon = new SqlConnection(conn); string GetCustomers = "Select * From Customers" ; SqlDataAdapter daCustomer = new SqlDataAdapter(GetCustomers, sqlCon); DataTable dtCustomers = new DataTable(); daCustomer.Fill(dtCustomers); gvCustomer.DataSource = dtCustomers; gvCustomer.DataBind(); } |
Gọi hàm LoadCustomers trong sự kiện click của button
1
2
3
4
| protected void btnLoadCustomers_Click(object sender, EventArgs e) { LoadCustomers(); } |
Kết quả chưa phân trang khi bạn click vào button như sau:
5. Phân trang cho gridview
Để phân trang được trong gridview control bạn phải set những properties (thuộc tính) như sau:
- AllowPaging = true cho phép phân trang
- PageSize = 10 là số lượng record trên 1 trang
- Tại sự kiện pagingIndexChanging gọi lại function LoadCustomers()
1
2
3
4
5
6
| protected void gvCustomer_PageIndexChanging(object sender, GridViewPageEventArgs e) { LoadCustomers(); gvCustomer.PageIndex = e.NewPageIndex; gvCustomer.DataBind(); } |
6. Giải thích
1
| string conn = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True" |
Đoạn mã trên là chuỗi kết nối dữ liệu đến database là Northwind trong hệ quản trị dữ liệu SQL Server
Tạo đối tượng SQL Connection SqlCon
1
| SqlConnection sqlCon = new SqlConnection(conn); |
Đoạn mã truy vấn dữ liệu
1
| string GetCustomers = " Select * From Customers " |
Đối tượng dùng xử lý dữ liệu
1
| SqlDataAdapter daCustomer = new SqlDataAdapter(GetCustomers, sqlCon); |
Tạo đối tượng DataTable chứa dữ liệu
1
| DataTable dtCustomers = new DataTable(); |
Fill dữ liệu vào DataTable
1
| daCustomer.Fill(dtCustomers); |
Và cuối cùng là hiển thị dữ liệu
1
2
| gvData.DataSource = dtCustomers; gvData.DataBind(); |
Sự kiện PageIndexChanging
1
2
| gvCustomer.PageIndex = e.NewPageIndex; gvCustomer.DataBind(); |
Khi click vào trang mới sẽ tạo ra một NewPageIndex
Comments[ 0 ]
Đăng nhận xét