2009-06-05 35 views
6

Tôi sử dụng GridViews khá thường xuyên và đôi khi tôi bị nhầm lẫn với vị trí đặt mã nhất định. Chuỗi sự kiện được kích hoạt bao gồm tất cả các sự kiện trang là gì?Chuỗi sự kiện được kích hoạt trong điều khiển asp.net GridView là gì?

Đã chỉnh sửa: Tôi thực sự cũng đang cố gắng hiểu điều gì xảy ra giữa trang và GridView. Các sự kiện có bao giờ vượt qua không? Hoặc tất cả các sự kiện trang xảy ra cùng một lúc thì tất cả các sự kiện GridView xảy ra? Và không chỉ GridViews, bất kỳ điều khiển nào - nhưng chủ yếu là tương tác giữa trang và GridView.

+0

Thực sự, hãy thử thêm System.Diagnostics.Debug.Writeline cho mọi sự kiện như trong câu trả lời của tôi. Thêm chế độ xem lưới vào trang trong thời gian thiết kế, nhưng thực sự cũng cố thêm một trang trong Page_PreRender. Điều này sẽ thực sự cung cấp cho bạn một cái nhìn tốt về những gì đang xảy ra ... – Ropstah

Trả lời

3
protected void GridView1_Load(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_Load"); 
} 
protected void GridView1_DataBinding(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBinding"); 
} 
protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBound"); 
} 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_RowDataBound"); 
} 
+0

Điều này sẽ có ích cho các lớp khác mà bạn sẽ gặp phải. Làm theo cách này là cách duy nhất bạn có thể chắc chắn các sự kiện đang kích hoạt. Microsoft có thể nói nó - nhưng làm thế nào để bạn biết chắc chắn? lol – Ropstah

7

Nếu bạn đang đề cập đến vòng đời trang, bạn có thể tìm thấy một cái nhìn tổng quan here.

Tóm tắt của chu kỳ cuộc sống là:

Yêu cầu trang

Các yêu cầu trang xảy ra trước khi vòng đời trang bắt đầu. Khi trang được yêu cầu bởi người dùng, ASP.NET sẽ xác định xem trang có cần phải được phân tích cú pháp và biên dịch (do đó bắt đầu cuộc đời của trang) hay không hoặc liệu phiên bản được lưu trong bộ nhớ cache của trang có thể được gửi đi mà không cần chạy trang hay không.

Bắt đầu

Trong bước khởi đầu, tài sản trang như yêu cầu và đáp ứng được thiết lập. Ở giai đoạn này, trang cũng xác định xem yêu cầu là một postback hay một yêu cầu mới và thiết lập thuộc tính IsPostBack. Ngoài ra, trong bước bắt đầu, thuộc tính UICulture của trang được đặt.

Trang khởi

Trong trang khởi tạo, điều khiển trên trang có sẵn và tài sản UniqueID mỗi kiểm soát được thiết lập. Mọi chủ đề cũng được áp dụng cho trang. Nếu yêu cầu hiện tại là một postback, dữ liệu postback chưa được nạp và kiểm soát các giá trị thuộc tính chưa được khôi phục về giá trị từ trạng thái xem.

tải

Trong tải, nếu yêu cầu hiện nay là một postback, tính chất điều khiển được nạp với các thông tin thu hồi từ view state và kiểm soát nhà nước.

Validation

Trong xác nhận, phương pháp Validate của tất cả các điều khiển validator được gọi là, thiết lập tài sản IsValid điều khiển validator cá nhân và của trang.

Postback sự kiện xử lý

Nếu yêu cầu là một postback, bất cứ xử lý sự kiện được gọi là.

Rendering

Trước khi render, view state sẽ được lưu cho các trang web và tất cả các điều khiển. Trong giai đoạn kết xuất, trang gọi phương thức Render cho mỗi điều khiển, cung cấp một nhà văn văn bản ghi đầu ra của nó vào OutputStream của thuộc tính Response của trang.

Unload

Unload được gọi sau khi trang đã được trả lại đầy đủ, gửi cho khách hàng, và sẵn sàng để được loại bỏ. Tại thời điểm này, các thuộc tính của trang như Response và Request được dỡ xuống và mọi việc dọn dẹp được thực hiện.

Đối với các sự kiện GridView, chúng có thể được tìm thấy here.

Các vấn đề liên quan