Hình 15-7 liệt kê các sự kiện được nêu ra bởi sự kiểm soát DetailsView.
Như bạn có thể thấy, các sự kiện tương tự như các sự kiện lớn lên bởi sự kiểm soát GridView. Hầu hết các sự kiện đi theo cặp: một trong đó là nâng lên trước khi một hoạt động xảy ra, và đó khác đang tăng sau khi các hoạt động hoàn thành. Ví dụ, sự kiện ItemDeleting được nâng lên trước khi một mục bị xóa, và các sự kiện ItemDeleted được nâng lên sau khi một mục đã bị xóa.
Như với điều khiển GridView, lý do phổ biến nhất để xử lý trước khi các sự kiện cho sự kiểm soát DetailsView là để cung cấp dữ liệu xác nhận. Ví dụ, khi người dùng nhấp chuột vào nút Update, bạn có thể xử lý các sự kiện ItemUpdating để đảm bảo rằng người dùng đã nhập dữ liệu chính xác. Sau đó, bạn có thể thiết lập các thuộc tính Cancel e của đối số là True nếu người dùng đã không nhập dữ liệu chính xác. Nó sẽ huỷ các bản cập nhật.
Các sự kiện sau khi hành động cho phép bạn kiểm tra xem cơ sở dữ liệu hoạt động đã hoàn tất thành công. Để làm điều đó, bạn cần phải kiểm tra cho hai loại lỗi như minh họa trong ví dụ trong hình này. Trước tiên, bạn nên kiểm tra xem có trường hợp ngoại lệ cơ sở dữ liệu bằng cách kiểm tra các tài sản ngoại lệ của các đối số e. Nếu nó không phải là vô giá trị, một cơ sở dữ liệu ngoại lệ đã xảy ra. Sau đó, bạn nên hiển thị một thông báo lỗi thích hợp để cho người dùng biết về các vấn đề.
Nếu nguồn dữ liệu sử dụng đồng thời lạc quan, bạn cũng nên kiểm tra để chắc chắn rằng đó không phải là một lỗi đồng thời. Bạn có thể làm điều đó bằng cách kiểm tra các AffectedRows tài sản của các đối số e. Nếu một lỗi đã xảy ra đồng thời, tài sản này sẽ được thiết lập để không có nghĩa rằng không có hàng đã được thay đổi. Sau đó, bạn có thể hiển thị một thông báo lỗi thích hợp.
Nếu không có lỗi xảy ra trong quá trình hoạt động cập nhật, các sự kiện ItemUpdated thể hiện trong con số này kết thúc bằng cách gọi phương thức DataBind cho việc kiểm soát danh sách thả xuống. Điều này là cần thiết bởi vì nhà nước xem được kích hoạt để kiểm soát này.
Kết quả là, kiểm soát này sẽ tiếp tục hiển thị các dữ liệu cũ, trừ khi bạn gọi phương thức DataBind nó để làm mới dữ liệu của nó. Nếu nhà nước xem đã được vô hiệu hóa để kiểm soát này, các cuộc gọi DataBind sẽ không cần thiết
đang được dịch, vui lòng đợi..
