2012-05-09 21 views
6

Tôi có một điều khiển tùy chỉnh dựa trên Panel. Nó chỉ đơn thuần là một bảng điều khiển đơn giản với 3 DropDownLists. Nếu tôi thêm một CompareValidator để WebForm của tôi và thiết lập ControlToValidate tài sản để ID của điều khiển quen thuộc của tôi, tôi nhận được lỗi sau:Làm cách nào để kiểm soát tùy chỉnh có hiệu lực?

Control '{0}' referenced by the ControlToValidate property of '{1}' cannot be validated.

Tôi hiểu tại sao, các CompareValidator không thể hợp lý xác nhận bất cứ điều gì chống lại Panel. Vì vậy, những gì tôi cần phải thêm vào kiểm soát tùy chỉnh của tôi để làm cho nó có thể cho một validator để có thể xác nhận nó?

Tôi đã thử thêm thuộc tính Text vào Bảng điều khiển của mình, trả về kết hợp các thuộc tính Văn bản của 3 DropDownLists. Không có kết quả.

Tôi đã thử tìm các giao diện nhất định (ITextControl) mà các điều khiển hợp lệ (TextBox) triển khai và thêm chúng vào kiểm soát tùy chỉnh của tôi. Không có kết quả.

Làm cách nào để tôi có thể kiểm soát tùy chỉnh dựa trên Bảng điều khiển, hợp lệ hóa bởi trình xác thực .net thông thường? (RequiredFieldValidator, CompareValidator, vv)

Trả lời

5

Nếu bạn chưa có nó, bạn cần phải thêm thuộc tính ValidationProperty đến lớp học của bạn để nó biết mà tài sản để sử dụng để xác thực:

[ValidationProperty("Text")] 
[ToolboxData("<{0}:YourCustomControl runat=server></{0}:YourCustomControl>")] 
public class YourCustomControl : WebControl 
... 
+0

Vâng, đó không lừa! Cảm ơn câu trả lời nhanh của bạn. :) Sẽ chấp nhận sau vài phút nữa. – Bazzz

+0

Không sao cả. Tôi vui vì bạn đã làm nó hoạt động. –

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