2012-01-12 8 views
10

làm thế nào để hiển thị duy nhất một tin nhắn cho nhiều RequiredFieldValidator thay vì tin nhắn cá nhân cho RequiredFieldValidator?làm thế nào để hiển thị duy nhất tin nhắn cho nhiều RequiredFieldValidators?

tôi muốn như thể hiện trong hình ảnh sau ..

i want to as shown in following image..

quan điểm của tôi là ..

 my view is.

+0

tôi đang tìm kiếm một giải pháp bản thân mình. Tìm thấy liên kết này hữu ích nhất: http://www.codeproject.com/Tips/72380/ValidationSummary-showing-header-text-HeaderText-o –

Trả lời

12

Bạn sẽ phải sử dụng ValidationSummary kiểm soát cho việc này. Xem chi tiết ValidationSummary Class MSDN article để biết chi tiết và ví dụ về cách thực hiện việc này. Bài viết này chứa một ví dụ về những gì bạn đang cố gắng tìm ra chính xác.

+0

cảm ơn, nhưng tôi đã sử dụng ValidationSummary. nhưng nó hiển thị nhiều thông báo cho mỗi trình xác thực. và tôi chỉ muốn hiển thị một thông điệp duy nhất cho mỗi người xác nhận. làm thế nào tôi có thể? – Rohan

+0

bạn sẽ phải ẩn từng thông báo lỗi bằng cách sử dụng Display = "none" cho mỗi requiredfieldvalidator – Maheep

+0

nhưng nó ẩn toàn bộ trình xác nhận. !! nếu điều khiển trống thì trình xác nhận này sẽ không hoạt động – Rohan

5

đặt Tiêu đề thành một cái gì đó như "(*) Các trường được yêu cầu" thành tóm tắt xác thực của bạn.

+0

cảm ơn. nhưng nó cũng hiển thị thông báo của RequiredFieldValidator. làm thế nào tôi có thể giấu nó? – Rohan

2

tôi có thể thấy những gì bạn đang cố gắng làm nhưng rất khó với ASP.Net Validators

Cách duy nhất tôi có thể nghĩ để làm điều đó là loại bỏ các ValidationSummary hoàn toàn và tự tạo riêng của bạn bằng cách sử dụng ASP.Net validator API và JQuery tức

  1. Thay đổi tất cả các xác nhận cần thiết để ErrorMessage = "*" Hủy bỏ Tiêu đề giá trị
  2. Remove Validation Summary
  3. Thêm một nhãn ở phía dưới để có chức năng như một validat tùy chỉnh hoặc tóm tắt. Phong cách nó đỏ
  4. Trong trang đánh dấu kịch bản giống như
if(!Page_IsValid) {  
    $('#myCustomValidatorSummary').text('Please fill in required fields') 
}

Page_IsValid là từ validator API ASP.Net. Đặt thành false nếu trang không xác thực.

Tất nhiên điều này giả định rằng bạn chỉ có trình xác thực trường bắt buộc trên biểu mẫu của mình. Nếu có sự pha trộn thì bạn sẽ cần phải kiểm tra xem một hoặc nhiều yêu cầu đã thất bại hay không bằng cách lặp lại thông qua Page_Validators trên máy khách bằng cách sử dụng JQuery/javascript

Thành thật mà nói tôi sẽ không làm điều đó - quá khó

tôi sẽ chỉ làm điều này - Đối với mỗi validator trường bắt buộc - thiết

Text="*" 
ErrorMessage="[Field Name] is mandatory. Please supply a value." or similar. 
0

sử dụng ValidationSummary

Việc kiểm soát ValidationSummary được sử dụng để hiển thị một bản tóm tắt của tất cả các lỗi xác nhận xảy ra ở một Web trang.

Thông báo lỗi được hiển thị trong điều khiển này được xác định bởi thuộc tính ErrorMessage của mỗi điều khiển xác thực. Nếu thuộc tính ErrorMessage của điều khiển xác thực không được đặt, không có thông báo lỗi nào được hiển thị cho điều khiển xác thực đó.

http://asp-net-example.blogspot.in/2008/10/validationsummary-example-how-to-use.html

5

bạn có thể rời sân thông báo lỗi của mỗi RequiredFieldValidator trống và đặt * trong lĩnh vực văn bản, sau đó thêm ValidationSummary xác định văn bản tiêu đề của nó với msg lỗi điều này sẽ làm việc cho kịch bản của mình.

<asp:RequiredFieldValidator ID="RequiredFieldValidator_overhead_name" runat="server" ControlToValidate="TextBox_overhead_name">*</asp:RequiredFieldValidator> 


<asp:ValidationSummary ID="ValidationSummary_overhead_estimate" runat="server" DisplayMode="SingleParagraph" HeaderText="please insert data into fileds" /> 
+1

điều này thực sự là một khó khăn .. cảm ơn bạn đã chia sẻ – Waqas

1

cách nhanh chóng và dễ dàng: thêm một CssClass đến ValidationSummary, sau đó một phong cách css mà bộ các yếu tố ul dưới lớp đó để display: none.

Ví dụ:

<style> 
.validationSummary ul {display:none} 
<stlye> 

...

<asp:ValidationSummary CssClass="validationSummary" ... 
0

Để thêm vào câu trả lời Mike Godin của, cho chỉ hiển thị một thông điệp cảnh báo duy nhất cho nhiều lĩnh vực xác nhận:

Giữ cá nhân cần thiết tin nhắn. Thêm Tóm tắt xác thực bằng DisplayMode = "BulletList" và HeaderText = "Vui lòng cung cấp thông tin được yêu cầu ở trên".

Các "BulletList" chế độ hiển thị tạo ra một danh sách có thứ tự của LI của bên trong Tóm tắt DIV Validation, sau đó ẩn UL qua phong cách - chỉ có "HeaderText" sẽ hiển thị:

#validationSummary ul { 
     display:none; 
    } 

<asp:ValidationSummary 
    id="validationSummary" 
    DisplayMode="BulletList" 
    EnableClientScript="true" 
    HeaderText="Please provide the required information above." 
    ValidationGroup="btnSubmit" 
    runat="server"/>