2012-01-16 12 views
6

tôi có vấn đề là tôi đã chỉ định màu của RequiredFieldValidator thành màu đỏ nhưng khi tôi xuất bản trang web trên mạng, màu của RequiredFieldValidator được đổi thành màu đen. nó hoạt động tốt trong localhost. Điều gì có thể là vấn đề ? cảm ơn trước ..làm thế nào tôi có thể làm cho màu sắc của Valdator đỏ?

this is the image like what i want

+0

Hiển thị cho chúng tôi đánh dấu/CSS – IrishChieftain

+0

tôi vừa xác định thuộc tính của Validators là ForeColor = red. nhưng nó không hoạt động – Rohan

+3

bạn có thể thử sử dụng các kiểu css, đưa ra một lớp '.errorMsg {color: red;}' – Murtaza

Trả lời

3

Theo mặc định trình xác thực sẽ là màu đỏ - bạn không cần phải thay đổi nó. Kiểm tra css của bạn để chắc chắn rằng nó không được vượt qua bởi bất cứ điều gì. Ngoài ra, hãy kiểm tra lớp mà requiredfieldvalidator được đặt thành và đảm bảo rằng nó không bao gồm thuộc tính màu.

+1

Chỉ cần rõ ràng hơn: Như Jason đã đề cập, màu mặc định CHỈ là màu đỏ trước .net 4.0. Nếu bạn không muốn thay đổi màu của MỌI validator đơn trong toàn bộ trang web, bạn sẽ cần phải cập nhật web.config của bạn theo cách Syed đề cập đến. Có thể bạn nên cập nhật cấu hình web cho bất kỳ trang web hiện có nào được thiết kế <4.0 và sau đó chuyển sang 4.0+ trừ khi bạn đã kiểm tra từng trang. – Bolo

14

Rohan,

Đây có thể là vấn đề của bạn. Tôi đã từng gặp vấn đề tương tự.

Theo mặc định, khung 4.0 sẽ làm cho tất cả các thông báo lỗi của trình duyệt tính hợp lệ trở thành màu đen. Bạn sẽ cần phải thiết lập rõ ràng ForeColor của tất cả các trình duyệt tính hợp lệ thành màu đỏ nếu bạn nhắm mục tiêu khung 4.0.

đầu ra của bạn nguồn trong 3.5:

<span id="ctl01_YourControl" style="color:Red;visibility:hidden;">*</span> 

đầu ra nguồn của bạn trong 4.0:

<span id="ctl01_YourControl" style="visibility:hidden;">*</span> 
+0

Đây chính xác là những gì đã xảy ra với tôi. Tôi đã được thử nghiệm trong .NET 2.0 nhưng sản xuất đã được chạy trong 4.0. Cảm ơn vì tiền hỗ trợ! – dandax

5

ASP.NET 4.0 có thay đổi mã sạch hơn đầu ra, trong đó bao gồm:

xhtmlConformance là đặt thành Nghiêm ngặt. Menu được hiển thị dưới dạng danh sách thay vì bảng Các thuộc tính ngoại lai như border = 0 được xóa khỏi đánh dấu được phát ra. Ngay cả văn bản lỗi trên các điều khiển xác thực không còn được đặt thành màu đỏ. Việc hiển thị bảng ngoài cho các điều khiển templated giờ đây có thể được kiểm soát với thuộc tính newRenderOuterTable. Để tương thích, bạn có thể làm cho đầu ra của bạn trông giống như nó đã làm trong ASP.NET 3.5 với controlRenderingCompatibilityVersion

> <?xml version="1.0"?> <configuration> <system.web> 
>  <compilation debug="false" targetFramework="4.0" /> 
>  <pages controlRenderingCompatibilityVersion="3.5" /> </system.web> </configuration> 

biết thêm thông tin có sẵn tại http://msdn.microsoft.com/en-us/library/system.web.ui.control.renderingcompatibility.aspx.

Tôi rất vui vì đã giải quyết vấn đề này. Và tôi ngạc nhiên là tôi không thể tìm thấy nhiều người đăng hơn về cùng một vấn đề này. Có vẻ như các tùy chọn trong trường hợp của tôi là sử dụng cài đặt tương thích này hoặc đặt ForeColor của tất cả các điều khiển xác thực của tôi thành Đỏ. (Tôi có thể sẽ làm điều đó sau.)

+0

đặt controlRenderingCompatiblityVersion thành 3.5 giải quyết được sự cố của tôi –