2013-06-28 33 views
5

Tôi nhận thấy có rất nhiều bài đăng tương tự, tuy nhiên tôi chưa tìm thấy bài đăng nào đã làm việc cho tôi. Về cơ bản, tôi có một asp: customvalidator mà tôi đang cố gắng để thêm vào một validationgroup với validators khác để tất cả các thông báo lỗi xuất hiện trong cùng một cảnh báo. Đây là CustomValidatorTrình xác thực tùy chỉnh không kích hoạt

<asp:TextBox runat="server" ID="txtVideo1Url" Columns="20" Width="98%" /> 
<asp:CustomValidator runat="server" ID="valURL1" ControlToValidate="txtVideo1Url" OnServerValidate="txtVideo1Url_ServerValidate" Display="None" ValidationGroup="submission" /> 

và đây là sự kiện

protected void txtVideo1Url_ServerValidate(object sender, ServerValidateEventArgs e) 
    { 
     e.IsValid = false; 
     valURL1.Text = "FAIL!"; 
    } 

Sự kiện này được không bắn vào tất cả và tôi không có ý tưởng tại sao. Một khi tôi có thể nhận được sự kiện bắn tôi có thể đặt một số logic thực tế vào nó, lol

CẬP NHẬT: Tôi đã nhận thấy rằng bây giờ tôi có thể nhận được sự kiện bắn, tuy nhiên validationsummary được thiết lập để hiển thị tất cả các lỗi trong một hộp thư và lỗi này không được thêm vào hộp thư.

+2

Câu trả lời cho 'UPDATE' là' CustomValidator' là cơ chế xác thực phía máy chủ, trong khi khả năng 'MessageBox' là một cơ chế phía máy khách, do đó đã quá muộn để đưa thông điệp' CustomValidator' vào 'MessageBox'. –

Trả lời

6

Bạn cần phải đặt CausesValidation tài sản của TextBox để true, như thế này:

<asp:TextBox runat="server" ID="txtVideo1Url" Columns="20" Width="98%" CausesValidation="true" /> 
+0

cảm ơn phản hồi. Tôi chỉ cần thêm CausesValidation = "true" vào hộp văn bản và nó vẫn không kích hoạt –

+2

Giống như câu trả lời khác nói (Ilkka) thuộc tính 'ValidationGroup' là vấn đề, hoặc loại bỏ nó hoặc thêm nó vào điều khiển làm postback. –

1

Bạn sẽ phải thêm ValidationGroup = "nộp" cho ASP.NET điều khiển mà sẽ cháy postback.

17

Hãy nhớ để thiết lập thuộc tính này trên CustomValidator ...

ValidateEmptyText="True" 
+0

Điều này làm việc cho tôi mà không cần phải đặt rõ ràng CausesValidation trên một hộp văn bản. – Andez

+0

Cảm ơn. Sự kiện của tôi không kích hoạt vì kiểm soát để xác thực là chuỗi rỗng – Alberto

1

CustomValidators không bắn nếu Validators khác trong ASPX của bạn không được xác nhận. Bạn có thể cần phải ép buộc một Page.Validate ("cái gì đó"), với nhóm xác nhận cụ thể của bạn. Tôi đề nghị xem sự kiện OnTextChanged để buộc một trang xác thực.

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