.Thi hành Consumer

Một phần của tài liệu Ứng dụng công nghệ sharepoint để xây dựng cổng thông tin nội bộ dùng trong các doanh nghiệp (Trang 133 - 138)

3.3.5 .Tương tác giữa các Web Part

3.3.5.4 .Thi hành Consumer

Viết một consumer Web Part khơng khó hơn việc thiết lập một provider. Ta lặp lại cùng các bước ở trên để thêm vào một consumer Web Part cho dự án. Nếu cả hai Web part chứa trong cùng một Asembly ta cần tạo ra một DWP file thứ hai. Trong trường hợp đơn giản nhất ta chỉ cần cài đè phương thức ảo CellReady và thu về bất cứ giá trị nào mà provider cung cấp và cất dữ các giá trị đó.

Phương thức CellReady thu về một đối tượng CellReadyEventArgs mà trong nó có chứa thuộc tính Cell chỉ đến bất cứ giá trị nào mà provider đã cung cấp trong một tham số đối tượng tương tự trong phương thức

PartCommunicationMain của nó. Thuộc tính Cell có kiểu object, ta cần ép

kiểu để chuyển nó về dạng dữ liệu phù hợp trước khi sử dụng.

Consumer cũng có thể muốn kiểm tra xem dữ liệu mà provider đưa ra có hợp khn dạng hay khơng, để làm điều này ta cần thực thi phương thức

CellProviderInit. Lưu ý ở đây là phương thức này không thể bị bỏ qn vì nó

là một phần của giao diện ICellConsumer.

public void CellProviderInit(object sender, CellProviderInitEventArgs

if (cellProviderInitArgs.FieldName != "EmployeeID")

{

throw new NotSupportedException(); }

}

Ở đây lớp CellProviderInitEventArgs đã được điền đầy dữ liệu bởi provider khi provider phát sinh sự kiện CellProviderInit. Sau đây là một đoạn mã chuẩn để làm điều này:

public override void PartCommunicationInit() { if (CellProviderInit != null) { CellProviderInitEventArgs cellProviderInitArgs; cellProviderInitArgs = new CellProviderInitEventArgs();

cellProviderInitArgs.FieldDisplayName = "Employee ID";

CellProviderInit(this, cellProviderInitArgs); }

}

Thuộc tính FieldName cho biết tên của đối tượng dữ liệu đang được chuyển giao, dữ liệu này khơng có cú pháp chính xác – nó có thể là bất cứ thứ gì.

Sau đây là một consumer Web Part đơn giản đọc employee ID thông qua kết nối với provider và hiển thị tất cả các hàng được cung cấp trong thuộc tính

year tương ứng. year là một thuộc tính của Web Part mà ta tạo ra, nó là một

thuộc tính cơng cộng và có thể hiển thị được, ta định nghĩa nó như sau:

[Browsable(true),

Category("Miscellaneous"),

Description("Year of selected orders"), DefaultValue(1997),

FriendlyName("Year"),

public int Year {

get {return _year;} set {_year = value;} }

Employee ID và year là hai tham số được sử dụng trong truy vấn SQL mà kết quả truy vấn được hiển thị thông qua một DataGrid đã được thiết lập để trình bày dữ liệu.

private void BuildUI(HtmlTextWriter writer) {

DataGrid _grid = new DataGrid(); _grid.AutoGenerateColumns = true; _grid.Font.Name = "verdana";

_grid.Font.Size = FontUnit.Point(8); _grid.HeaderStyle.Font.Bold = true; _grid.HeaderStyle.BackColor =

_grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; _grid.DataSource = _data; _grid.DataBind(); _grid.RenderControl(writer); }

Hình sau cho thấy hai Web Part làm việc cùng nhau trong một Web Page.

Một phần của tài liệu Ứng dụng công nghệ sharepoint để xây dựng cổng thông tin nội bộ dùng trong các doanh nghiệp (Trang 133 - 138)

Tải bản đầy đủ (DOC)

(199 trang)
w