Ngôn ngữ ASP.NET - Tổng quan GridView
Đối tượng dữ liệu GridView
GridView có lẽ là một điều khiển trình diễn dữ liệu quan trọng nhất của ASP.NET. Nó cho phép gắn và hiển thị dữ liệu ở dạng bảng, trong đó mỗi hàng là một bản ghi, mỗi cột ứng với một trường dữ liệu. Ngoài việc hiển thị, GridView còn có rất nhiều tính năng khác mà trước đây người ta phải viết rất nhiều dòng code mới có được, Thí dụ: Định dạng, phân trang, sắp xếp, sửa đổi, xóa dữ liệu.
GridView có thể gắn kết dữ liệu với các nguồn như DataReader, SqlDataSource, ObjectDataSource hay bất kỳ nguồn nào có cài đặt System.CollectionsEnumerable.
1. Các thuộc tính và cột thuộc tính
GridView ngoài việc hiển thị thuần túy các trường của một nguồn dữ liệu, nó còn cho phép hiển thị dưới các hình thức khác (Thí dụ dưới dạng nút, dạng HyperLink, dạng checkbox…), các cột khác bổ trợ cho việc thao tác dữ liệu như Select, Update, Delete hoàn toàn có thể tùy biến trong GridView.
Để chỉnh sửa các cột dạng này, click chọn "smart tag" của GridView và chọn "Edit Field" hoặc chọn thuộc tính Columns của GridView trong cửa sổ thuộc tính.
Loại cột | Mô tả |
BoundField | Hiển thị giá trị của một trường thuộc nguồn dữ liệu. |
ButtonField | Hiển thị một nút lệnh cho mỗi mục trong GridView. Nút này cho phép bạn có thể tạo ra các nút tùy biến kiểu như Add hay Remove. |
CheckBoxField | Hiển thị một checkbox ứng với mỗi mục trong GridView. Cột này thường được dùng để hiển thị các trường kiểu Boolean (Yes/No). |
CommandField | Hiển thị các nút lệnh đã được định nghĩa sẵn để thực hiện các thao tác select, edit, hay delete. |
HyperLinkField | Hiển thị giá trị của một trường dưới dạng siêu liên kết (hyperlink). Loại cột này cho phép bạn gắn một trường thứ hai vào URL của siêu liên kết. |
ImageField | Hiển thị một ảnh ứng với mỗi mục trong GridView. |
TemplateField | Hiển thị một ảnh ứng với mỗi mục trong GridView. |
Thuộc tính | Mô tả |
GridLines | Ẩn, hiện các đường viền của GridView. |
ShowHeader | Cho phép Hiện/ ẩn phần Header |
ShowFooter | Cho phép Hiện/ ẩn phần Footer |
PageSize | Get/Set cho biết mỗi trang chứa bao nhiêu dòng. |
PageCount | Cho biết số trang của nguồn dữ liệu mà nó gắn kết |
PageIndex | Get/Set chỉ số của trang đang được hiển thị |
AllowPaging | Có cho phép phân trang không ( true = có) |
AllowSorting | Có cho phép sắp xếp không (true=có) |
AutoGenerateColumns | Có tự động sinh ra các cột ứng với các cột trong nguồn dữ liệu hay không ? Mặc định = true (có) |
AutoGenerateDeleteButton | Tự động tạo ra cột Delete (true = tự động) |
AutoGenerateUpdateButton | Tự động tạo ra cột Update (true = tự động) |
AutoGenerateSelectButton | Tự động tạo ra cột Select (true = tự động) |
EditIndex (SelectedIndex) | Đặt hàng nào đó về chế độ edit. EditIndex = 2 hàng thứ 3 (chỉ số 2) sẽ về chế độ edit. Nếu đặt EditIndex = -1 thì sẽ thoát khỏi chế độ Edit. |
SelectedIndex | Trả về chỉ số của dòng đang chọn |
Rows | Một tập hợp chứa các hàng của GridView. |
Columns | Một tập hợp chứa các cột của GridView. |
GridView rất linh hoạt trong việc trình bày dữ liệu, nó cho phép ta định dạng các phần thông qua style. Thí dụ ta có thể định dạng cho phần Header, Footer, các mục dữ liệu, các hàng chẵn-lẻ v.v… Bảng dưới đây sẽ giải thích rõ ý nghĩa một số thuộc tính:
Thuộc tính style | Mô tả |
AlternatingRowStyle | Style áp dụng cho các hàng dữ liệu chẵn-lẻ trong GridView. Khi đặt thuộc tính này thì các hàng sẽ được hiển thị với định dạng luân phiên giữa RowStyle và AlternatingRowStyle. |
EditRowStyle | Style để hiển thị hàng hiện đang được sửa (Edit). |
FooterStyle | Style áp dụng cho phần Footer. |
HeaderStyle | Style áp dụng cho phần Header. |
PagerStyle | Style áp dụng cho phần phân trang (các trang << 1 2 3 … >>). |
RowStyle | Style áp dụng cho các hàng dữ liệu trong GridView control. Khi AlternatingRowStyle được thiết lập thì sẽ áp dụng luân phiên giữa RowStyle và AlternatingRowStyle. |
SelectedRowStyle | Style áp dụng cho hàng đang được chọn (Selected)của GridView. |
có rất nhiều sự kiện quan trọng, các sự kiện này khi kích hoạt sẽ cung cấp cho ta những thông tin hữu ích trong quá trình xử lý. Thí dụ, khi chúng ta click nút Update, nó sẽ kích hoạt sự kiện Updating và trả về cho chúng ta các giá trị mà người dùng vừa sửa…. Dưới đây là bảng tổng hợp một số sự kiện hay dùng nhất:
Tên sự kiện | Mô tả |
PageIndexChanged | Xuất hiện khi ta click chọn các nút ( << 1 2 3 >>) trong hàng phân trang. |
PageIndexChanging | Xuất hiện khi người dùng click chọn các nút ( << 1 2 3 >>) trong hàng phân trang nhưng TRƯỚC khi GridView thực hiện việc |
RowCancelingEdit | Xuất hiện khi nút Cancel được click nhưng trước khi thoát khỏi chế độ Edit. |
RowCommand | Xuất hiện khi một nút được click. |
RowCreated | Xuất hiện khi một hàng mới được tạo ra. Thường được sử dụng để sửa nội dung của hàng khi nó vừa được tạo ra. |
RowDataBound | Xuất hiện khi một hàng dữ liệu được gắn vào GridView. Tại đây ta có thể sửa đổi nội dung của hàng đó. |
RowDeleted | Xuất hiện khi nút Delete của một hàng được click, nhưng sau khi GridView đã delete bản ghi từ nguồn. |
RowDeleting | Xuất hiện khi nút Delete được click nhưng trước khi GridView xóa bản ghi từ nguồn. Tại đây có thể Cancel việc Delete. |
RowEditing | Xuất hiện khi nút Edit được click, nhưng trước khi GridView về chế độ sửa. |
RowUpdated | Xuất hiện khi nút Update được click, nhưng sau khi GridView update hàng dữ liệu. |
RowUpdating | Xuất hiện khi nút Update được click, nhưng trước khi GridView update hàng dữ liệu. |
SelectedIndexChanged | Xuất hiện khi nút Select của hàng được click nhưng sau khi GridView xử lý xong thao tác Select. |
SelectedIndexChanging | Xuất hiện khi nút Select của hàng được click nhưng trước khi GridView xử lý xong thao tác Select. |
Sorted | Xuất hiện khi Hyperlink (tiêu đề cột) được click, nhưng sau khi GridView thực hiện việc sắp xếp. |
Sorting | Xuất hiện khi Hyperlink (tiêu đề cột) được click, nhưng trước khi GridView thực hiện việc sắp xếp. Sự kiện này khi xảy ra, nó sẽ cung cấp cho chúng ta thông tin về tên cột vừa được click. Dựa vào đó ta có thể thực hiện việc sắp xếp một cách dễ dàng. |
Tên phương thức | Mô tả |
DataBind() | Gắn kết dữ liệu giữa GridView và nguồn dữ liệu (đặt các thuộc tính DataSource, DataTextField hoặc DataSourceID. |
DeleteRow(int) | Xóa một dòng trong GridView |
UpdateRow(int i, bool Valid) | Cập nhật một dòng trong GridView. |
Sort(Biểu thức sx, hƣớng sx) | Sắp xếp dựa trên biểu thức và hướng. |