Cấu trúc của một Control điển hình: DataGrid

Một phần của tài liệu Xây dựng và triển khai giải pháp Chợ Điện Tử (Trang 39 - 47)

MỘT SỐ CÔNG NGHỆ VÀ KỸ THUẬT 2.1Microsoft NET

2.3.3Cấu trúc của một Control điển hình: DataGrid

Cấu trúc chính

Kế thừa lớp Control và thực thi lớp INamingContainer để tránh xung đột id.

Hình 2.7 - DataGird được kế thừa từ Control, INamingContainer với các chức năng cơ bản phân trang, sắp xếp, cập nhật.

Thuộc tính ParseChildren: bằng true cho phép sử dụng thuộc tính template, false để tránh control con nằm trong mà thay vào đó là các phần tử nhúng vào

Thuộc tính Designer kết hợp với RepeaterDesigner cho phép dữ liệu nguồn được cung cấp trên giao diện thiết kế của VS.NET.

Hình 2.8 - DataBind và CreateChildControls Các thành phần

Templates

Datagrid có 5 template: HeaderTemplate, FooterTemplate, SeparatorTemplate, ItemTemplate và AlternatingItemTemplate. Trong đó hai kiểu cuối là: ItemTemplate và AlternatingItemTemplate có khả năng gắn với dữ liệu (data binding).

Events

Có các sự kiện như: ItemCommand, ItemCreated, ItemDataBound.

ItemCommand có thể gom các sự kiện được kích hoạt bởi những control ở cấp dưới theo kiểu nổi bọt.

ItemCreated được kích hoạt mỗi lần RepeaterItem được tạo. Nó cho phép thay đổi lần cuối cho các template động trước khi được trả về client.

ItemDataBound được gọi sau khi các ràng buộc dữ liệu đã thực hiện trên template. Sự kiện này chỉ dùng cho template ItemTemplate và Alternating vì các template khác không hỗ trợ ràng buộc dữ liệu

DataSourceHelper Class

DataSourceHelper

ResolveDataSource(object DataSource, string DataMember

DataSet

DataViewManager

DataTable

Kiểm tra xem IListSource có chứa tập hợp các danh sách không IListSource ITypedList IList Sử dụng DataViewManager để tìm DataTable có DataMember phù hợp trong tập hợp các DataTable của DataSet

Thực thi giao tiếp IListSource có thể trả về một IList chứa tập các IList

Các tập hợp đơn giản như Array, ArrayList chỉ cần ép kiểu DataSource thành Ienumerable, bên dưới là bước xử lý cho kiểu phức tạp

Hình 2.9 -Event Bubbling

Data Binding

Dữ liệu lựa chọn dựa vào DataMember trong DataSource.

DataSource được chia theo 2 dạng:

Các collection đơn giản như Array, ArrayList, DataReader được ép kiểu về giao tiếp Ienumarable

Collection phức tạp như DataSet được ép kiểu về giao tiếp IListSource. Thuộc tính ContainsListCollection của giao tiếp trên cho phép kiểm tra DataSet có chứa nhiều DataTable không. Nếu có nó phải sử dụng lớp thực thi giao tiếp ITypedList là DataViewManager để ràng buộc (bind) tới đúng dữ liệu nguồn

2.3.4 Biên dịch và phát hành một Custom Control với ASP.NET

Các cách tạo Custom Control

Tạo một custom control từ một control đã có sẵn. (derived custom control) (adsbygoogle = window.adsbygoogle || []).push({});

Tạo custom control hỗn hợp từ các control có sẵn thành một control mới. Ví dụ: Control Login được tạo mới dựa trên control Text, Button, ... (composite custom control)

Tạo một custom control đầy đủ bằng cách thừa kế lớp System.Web.UI.WebControls.WebControl. (full custom control)

Tạo một custom control đầy đủ:

Để tạo file .dll ta làm theo các bước sau

Vào File –> New –> Project chọn Web Control Library hoặc sử dụng project loại Class Library.

Hình 2.11 - Tạo một project loại Web Control Library

Nhấn OK để tạo project và vào giao diện chương trình để xây dựng Control

Hình 2.12 - Thông điệp nhận được sau khi biên dịch thành công được file .dll

Đưa file .dll vào project ứng dụng (project web): kích chuột phải lên project chọn Add Reference và chọn đường dẫn tới file .dll như hình dưới

Hình 2.13 - Cách Add một file .dll vào ứng dụng Web

Phát hành

<configuration> <system.web> <pages>

<controls>

<add tagPrefix="DataGrid" assembly="MN120507.Controls" namespace=”MN120507.Controls” />

</controls> </pages> </system.web> </configuration>

Khai báo trong ascx

<%@ Register tagPrefix="DataGrid" assembly="MN120507.Controls"%>

Sử dụng Control trong trang web (trang ascx hoặc aspx)

Lựa chọn lớp kế thừa: Việc lựa chọn các lớp kế thừa cũng có mức ảnh hưởng đến control được viết ra, sau đây có các loại chọn lớp kế thừa.

Chọn lớp Control

Không có giao diện trực quan cho thiết kế

Chọn lớp WebControl

Có giao diện trực quan cho thiết kế

Lớp WebControl hỗ trợ sẵn một số style như: Font, Color, Class….

Chọn các lớp Server Control có sẵn

Khi muốn thay đổi hoặc mở rộng chức năng cho các Control đó như: Label, TextBox….

Đưa Custom Control vào Toolbox

Mở trang .aspx trong chế độ thiết kế

Sau đó chọn tab “.Net Framework Components” Kích “Browse…” để chọn đường dẫn tới Control Kích OK để đóng cửa sổ

Hình 2.14 - Đưa Custom Control vào Toolbox (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Xây dựng và triển khai giải pháp Chợ Điện Tử (Trang 39 - 47)