Mặc dù điều khiển GridView cung cấp nhiều tính năng tự động, bạn vẫn phải viết một số mã để xử lý những việc như xác nhận dữ liệu, cơ sở dữ liệu ngoại lệ, và lỗi đồng thời. Là con số 14-10 cho thấy, hầu hết các mã này sẽ có trong hình thức xử lý sự kiện để đáp ứng với một hoặc nhiều sự kiện lớn lên bởi sự kiểm soát GridView.
Nếu bạn nhìn vào danh sách các sự kiện trong bảng trong hình này, bạn sẽ thấy rằng một vài trong số họ đi theo cặp, với một sự kiện nêu ra trước một hành động được thực hiện và khác sau khi hành động được hoàn tất. Ví dụ, khi người dùng nhấp chuột vào nút Delete trong một hàng GridView, hai sự kiện được nêu lên. Các sự kiện RowDeleting được nâng lên trước khi hàng được xóa, và các sự kiện RowDeleted được nâng lên sau khi hàng đã được xóa.
Lý do phổ biến nhất để xử lý các sự kiện trước khi hành động 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 RowUpdating để đảm bảo người dùng đã nhập dữ liệu chính xác. Nếu không, bạn có thể thiết lập các thuộc tính Cancel e lập luận của True để hủy bỏ bản cập nhật.
Ngược lại, các sự kiện sau khi hành động cung cấp cho bạn một cơ hội để đảm bảo các hoạt động cơ sở dữ liệu thành công. Trong hầu hết các ứng dụng, bạn nên thử nghiệm với hai điều kiện. Trước tiên, bạn nên kiểm tra xem có bất kỳ 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 thuộc tính này đề cập đến một đối tượng hợp lệ, một ngoại lệ đã xảy ra và bạn có thể thông báo cho người sử dụng với một thông báo lỗi thích hợp.
Thứ hai, nếu đồng thời lạc quan được sử dụng, bạn nên kiểm tra xem nếu một vi phạm đã xảy ra đồng thời. Để làm điều đó, bạn có thể kiểm tra các AffectedRows tài sản của các đối số e. Nếu thuộc tính này là số không, có nghĩa là không có hàng đã được thay đổi, một lỗi đồng thời đã có thể xảy ra, và bạn có thể thông báo cho người sử dụng với một thông báo lỗi thích hợp.
Khi bạn sử dụng đồng thời lạc quan, hãy nhớ rằng ở đâu điều khoản trong một nâng cấp hoặc xóa tuyên bố cố gắng để tìm thấy một hàng có cùng một giá trị như khi hàng đã được ban đầu được lấy ra. Nếu hàng không có thể được tìm thấy, có nghĩa là người dùng khác đã cập nhật một trong những cột hoặc xóa các hàng, các bản cập nhật hoặc xóa các hoạt động không bao giờ diễn ra như vậy không có hàng bị ảnh hưởng.
Khi bạn cố gắng để cập nhật một hàng, một trong những trường hợp ngoại lệ phổ biến nhất là do một nỗ lực để lưu trữ một giá trị null trong một cột cơ sở dữ liệu mà không cho phép các giá trị null. Điều này xảy ra khi người dùng không nhập một giá trị trong một trong các cột đang được cập nhật. Trong trường hợp này, bạn có thể hiển thị một thông báo lỗi thích hợp và thiết lập thuộc ExceptionHandled e lập luận của True để đàn áp tiếp tục xử lý các trường hợp ngoại lệ. Bạn cũng có thể thiết lập thuộc tính KeepInEditMode True rời khỏi sự kiểm soát GridView trong chế độ chỉnh sửa. Điều này được minh họa bằng các xử lý sự kiện đó là mã trong hình này.
Một sự kiện mà bạn có thể sử dụng là sự kiện RowDataBound, xảy ra khi một hàng được ràng buộc với điều khiển GridView. Sự kiện này thường được sử dụng để định dạng một ô trong một hàng dựa trên giá trị của tế bào. Nếu giá trị của các tế bào là ít hơn không, ví dụ, bạn có thể gán một màu nền khác nhau để nó. Để làm điều đó, bạn
đang được dịch, vui lòng đợi..