Sử dụng Collection

Một phần của tài liệu Xây dựng website du lịch Angkor (Trang 49 - 53)

a) Netscape Navigator :

2.2.9. Sử dụng Collection

a.) Khái niệm

Collection là một kiểu dữ liệu đợc dùng để chứa các số, xâu, và cả một đối tợng (object). Collection nh một mảng ngoại trừ độ dài của nó có thể mở rộng hoặc thu hẹp đợc. Việc truy nhập đến các phần tử của Collection thông qua tên, chỉ số, phép lặp. Chỉ số của phần tử là không cố định vì trong

quá trình sử dụng các phần tử có thể đợc thêm, xoá và khi Collection biến đổi chỉ số của phần tử cũng có thể bị biến đổi theo. Collection có mặt trong hầu hết các đối tợng có sẵn của ASP.

b.) Truy nhập đến các phần tử của Collection .

+ Truy nhập bằng tên hoặc chỉ số :

Các phần tử của Collection có thể truy nhập thông qua tên hoặc chỉ số (vị trí) của nó.

Ví dụ : đối tợng Session có một thuộc tính có kiểu Collection là Contents.

Việc lu trữ dữ liệu đối với thành phần này nh sau :

<%

Session.Contents("FirstName") = "Sam" Session.Contents("LastName") = "Woo" Session.Contents("Age") = 29

%>

Truy nhập thông qua tên :

<%= Session.Contents("FirstName") %>

giá trị trở về của biểu thức này sẽ là : "Sam"

Truy nhập thông qua chỉ số :

<%= Session.Contents(1) %>

giá trị trở về cũng là "Sam"

Chú ý : Trong Collection chỉ số đợc đánh dấu bắt đầu từ 1.

+ Sử dụng vòng lặp .

Trong VBScript có thể sử dụng 2 vòng lặp : For ... Each hoặc For ... Next

Ví dụ với For ... Each :

Dim Item

'For each item in the collection, display its value. For Each Item in Session.Contents

Response.Write Session.Contents(Item) & "<BR>" Next

%>

Ví dụ với For ... Next :

<%

'Declare a counter variable. Dim Item

'Repeat this loop until the counter equals the number of items 'in the collection.

For Item = 1 to Session.Contents.Count

Response.Write Session.Contents(Item) & "<BR>" Next

%>

Session.Contents.Count là một hàm trả về số item trong Contents.

Trong Jscript có thể sử dụng lệnh For(;;) nh sau :

<% var item, numitems;

numitems = Session.Contents.Count;

for (item = 1; item <= numitems; item++) {

Response.Write(Session.Contents(item) + "<BR>") }

%>

+ Sử dụng đối tợng Enumerator : (Từ version 3.0 của Microsoft Jscript):

<%

var mycoll = new Enumerator(Session.Contents); //Iterate through the collection and display each item while (!mycoll.atEnd()) {

var x = mycoll.item();

Response.Write(Session.Contents(x) + "<BR>"); mycoll.moveNext();

} %>

method atEnd() : trả về 1 khi không còn một item nào nữa. method item() : cho item hiện tại.

method moveNext() : chuyển tới item tiếp theo. + Sử dụng vòng lặp cùng với Subkeys.

Cookie là một kiểu Collection mỗi item là một Subkey. Hai đối tợng Request và Response có nhiều Cookie để lu những giá trị khác nhau. Request.Cookies là một Collection chứa các Cookie chỉ đọc, Response.Cookies là một Collection chứa các Cookie chỉ ghi.

Ví dụ sau minh hoạ cách sử dụng thông qua vòng lặp For ... Each :

<%

'Declare counter variables Dim Cookie, Subkey

'Display the entire cookie collection. For Each Cookie in Request.Cookies Response.Write Cookie & "<BR>"

If Request.Cookies(Cookie).HasKeys Then 'Display the subkeys

For Each Subkey in Request.Cookies(Cookie)

Response.Write Subkey & "=" & Request.Cookies(Cookie)(Subkey) & "<BR>"

Next Else

Next %>

Mỗi Cookie có Subkey hay không đợc xác định bằng hàm .HasKeys. + Sử dụng vòng lặp thông qua một Collection của các đối tợng.

Khi các biến vô hớng và các instance của đối tợng đợc tạo ra trong một ứng dụng đợc lu vào trong Session và Application. Trong đó có 2 Collection : Contents giữ các biến vô hớng và các instance do Server. CreateObject tạo ra, và Collection StaticObjects do trờng HTML <Object> tạo ra trong file Global.asa.

Ví dụ :

<%

For Each Object in Session.StaticObjects Session.StaticObjects(Object).InitializeUser Next

%>

Một phần của tài liệu Xây dựng website du lịch Angkor (Trang 49 - 53)

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

(91 trang)
w