2010-05-27 22 views
5

Tôi đang gặp sự cố khi sự kiện nhấp nút của tôi vẫn kích hoạt mặc dù xác thực phía máy chủ tùy chỉnh của tôi được đặt thành args.IsValid = false. Tôi đang gỡ lỗi thông qua mã và xác nhận chắc chắn đang được kích hoạt trước khi nhấn nút và args.IsValid chắc chắn được đặt thành false khi xác thực tùy chỉnh diễn ra, nhưng nó luôn đi tới sự kiện nhấn nút sau đó. Bất kỳ ý tưởng về lý do tại sao điều này là?Sự kiện bấm nút ASP.NET vẫn kích hoạt ngay cả khi xác thực phía máy chủ tùy chỉnh không thành công

Trả lời

5

Không chắc 100% các chi, nhưng để ngăn chặn mã từ tiếp tục, thêm vào nút xử lý sự kiện click của bạn:

if (!Page.IsValid) 
    return; 

Điều đó sẽ ngăn chặn mã thực thi.

+0

Ah yes. Hoàn toàn quên mảnh đó. – Josh

0

Trên phía máy khách khi OnClientClick="return SomeCustomClientCode();" được gọi, trình xác thực asp.net, ví dụ như trình xác thực trường bắt buộc bị vô hiệu hóa và không được liệt kê trong bộ xác thực hợp lệ và không xác thực trường được xác thực bởi trình duyệt tính hợp lệ và trang này. ..

Để tránh điều này cho phép một cách rõ ràng xác nhận asp.net trong mã xác nhận tuỳ chỉnh hoặc những nơi khác để nó được kích hoạt postback trang b4 hoặc trong begiining xác nhận tùy chỉnh như sau:

ValidatorEnable(document.getElementById('<%=rfvDDLStatus.ClientID%>'), true); 

rfvDDLStatus == > trình xác thực trường bắt buộc không phải là linh sam ing.

ValidatorEnable ==> API ứng dụng khách để bật trình xác thực asp.net

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