a. Thuộc tính
1.1.5. Trang Borders (Khung viền)
Trang Borders quản lý việc kẻ khung viền cho lưới.
Cell margin
Cell padding: Qui định khoảng cách giữa nội dung trong ô với các đường viền của ô.
Ví dụ: Điều khiển DataGrid sau khi được định dạng
Lưới khách hàng sau khi được định dạng
Mã lệnh xử lý:
private void Page_Load() { if (!IsPostBack) { Lien_ket_du_lieu(); } } 1.2. Xử lý sắp xếp
Sắp xếp dữ liệu trên lưới là một công việc rất cần thiết đối với người sử dụng. Hãy thử tưởng tượng xem trong trường hợp chúng ta có khá nhiều dữ liệu hiển thị trên màn hình (giả sử là danh sách nhân viên chẳng hạn), thật khó để chọn ra các nhân viên có thâm niên làm việc lâu nhất hay các nhân viên có số giờ tham gia đề án nhiều nhất…. Với chức năng sắp xếp trên lưới sẽ giúp cho người dùng dễ dàng chọn ra các nhân viên thỏa mãn các yêu cầu trên.
Để thực hiện được thao tác sắp xếp dữ liệu trên lưới, chúng ta cần phải thực hiện các công việc sau:
Giá trị thuộc tính Allow sorting = True Nhập giá trị cho thuộc tính Sort expression của các cột cần sắp xếp.
Xử lý sự kiện SortCommand
Trong sự kiện trên, giá trị e.SortExpression cho biết thông tin của cột được chọn sắp xếp.
private void Page_Load() { if (!IsPostBack) { dtgKhach_hang.DataSource = Doc_ds_khach_hang(); dtgKhach_hang.DataBind(); } }
private void dtgKhach_hang_SortCommand() { dtgKhach_hang.DataSource = Doc_ds_khach_hang(e.SortExpression); dtgKhach_hang.DataBind(); } public DataTable Doc_ds_khach_hang([System.Runtime.InteropServices.OptionalAttribute, System.Runtime.InteropServices.DefaultParameterValueAttribute("")] string pChuoi_sap_xep) { string sKet_noi;
sKet_noi = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("..\\Data\\QlBanSach.mdb");
OleDbConnection cnKet_noi = new OleDbConnection(sKet_noi); DataSet dsCSDL = new DataSet();
string sLenh_sql = "Select * From KHACH_HANG";
sLenh_sql += IIf(pChuoi_sap_xep == "", "", " Order by " + pChuoi_sap_xep);
//Mở và đóng kết nối ngay khi thực hiện xong cnKet_noi.Open();
OleDbDataAdapter daBo_doc_ghi = new OleDbDataAdapter(sLenh_sql, cnKet_noi);
cnKet_noi.Close();
daBo_doc_ghi.Fill(dsCSDL, "KHACH_HANG"); return dsCSDL.Tables("KHACH_HANG");
}
Sắp xếp khách hàng tăng dần theo tên 1.3. Xử lý phân trang
Phân trang dữ liệu không những giúp cho việc xem và tìm kiếm thông tin
được dễ dàng mà còn giảm được khối lượng dữ liệu cần được truyền tải từ Server về Client. Việc phân trang trong ASP.Net được thực hiện khá dễ dàng, chỉ với một số thao tác đơn giản.
Để thực hiện phân trang, chúng ta cần phải thực hiện các công việc sau:
Qui định các thông số cần thiết cho việc phân trang (xem Quản lý phân trang ở phần Các thao tác định dạng lưới).
Xử lý sự kiện PageIndexChanged
Trong sự kiện trên, giá trị e.NewPageIndex cho biết trang được chọn để hiển thị dữ liệu.
Định dạng phân trang
Mã lệnh xử lý:
private void Page_Load() {
if (!IsPostBack) { Lien_ket_du_lieu(); }
}
private void dtgKhach_hang_PageIndexChanged() {
dtgKhach_hang.CurrentPageIndex = e.NewPageIndex; Lien_ket_du_lieu();
}
Dữ liệu hiển thị được phân trang 1.4. Tùy biến các cột
Trong phần này, chúng tôi sẽ hướng dẫn các bạn tùy biến các cột trên lưới, cụ thể hơn, chúng ta sẽ hiển thị checkbox thay cho giá trị True/False của cột giới tính. Để thực hiện việc tùy biến các cột, chúng ta cần phải thực hiện 2 giai đoạn sau:
Giai đoạn 1: Thiết kế
Trong giai đoạn này, chúng ta tùy biến cột theo một yêu cầu cụ thể. Thay vì phải hiển thị ô dữ liệu bình thường (như họ khách hàng, tên khách hàng, …), chúng ta có thể sử dụng điều khiển Checkbox để thay thế cho cột có giá trị luận lý, sử dụng điều khiển Image, Image button hay Hyperlink để hiển thị hình ảnh thay cho chuỗi đường dẫn dẫn đến hình ảnh đó, …
Giai đoạn 2: Xử lý
Sau khi thực hiện hoàn tất giai đoạn thiết kế, đây là lúc chúng ta phải viết các lệnh xử lý để hiển thị dữ liệu theo yêu cầu của mình.