Tôi đã tìm ra điều này. Nghĩ rằng tôi sẽ đăng một câu trả lời cho bất cứ ai quan tâm. Kết xuất khác nhau giữa hai phiên bản của AjaxControlToolkit. Để đặt lại vị trí cửa sổ ValidatorCallout, tôi đã tìm thấy phần sau để hoạt động tốt nhất.
Bạn phải ghi đè tất cả các lớp .ajax__validatorcallout_ * css mà bộ công cụ tạo ra với kiểu tùy chỉnh của riêng bạn. Đó là kỳ quặc, nhưng có vẻ như bạn phải ghi đè từng phong cách để làm cho nó hoạt động đúng. Tôi đã sử dụng thanh công cụ web firefox để khám phá các kiểu đã được tạo và sau đó tôi đã khắc phục chúng như sau.
<style>
.CustomValidator {position:relative;margin-left:-80px;}
.CustomValidator div {border:solid 1px Black;background-color:LemonChiffon; position:relative;}
.CustomValidator td {border:solid 1px Black;background-color:LemonChiffon;}
.CustomValidator .ajax__validatorcallout_popup_table {display:none;border:none;background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_popup_table_row {vertical-align:top;height:100%;background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_callout_cell {width:20px;height:100%;text-align:right;vertical-align:top;border:none;background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_callout_table {height:100%;border:none;background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_callout_table_row {background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_callout_arrow_cell {padding:8px 0px 0px 0px;text-align:right;vertical-align:top;font-size:1px;border:none;background-color:transparent;}
.CustomValidator .ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv {font-size:1px;position:relative;left:1px;border-bottom:none;border-right:none;border-left:none;width:15px;background-color:transparent;padding:0px;}
.CustomValidator .ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv div {height:1px;overflow:hidden;border-top:none;border-bottom:none;border-right:none;padding:0px;margin-left:auto;}
.CustomValidator .ajax__validatorcallout_error_message_cell {font-family:Verdana;font-size:10px;padding:5px;border-right:none;border-left:none;width:100%;}
.CustomValidator .ajax__validatorcallout_icon_cell {width:20px;padding:5px;border-right:none;}
.CustomValidator .ajax__validatorcallout_close_button_cell {vertical-align:top;padding:0px;text-align:right;border-left:none;}
.CustomValidator .ajax__validatorcallout_close_button_cell .ajax__validatorcallout_innerdiv {border:none;text-align:center;width:10px;padding:2px;cursor:pointer;}
</style>
Lưu ý: Tôi đã thêm dòng đầu tiên .CustomValidator {position: relative; margin-left: -80px;} vào các lớp được tạo. Tôi cũng đã phá vỡ .CustomValidator div, .CustomValidator td để tôi có thể thêm vị trí: tương đối; cho div và không phải là td. Lề bên trái: -80px là thứ tôi cần để chuyển mọi thứ sang trái.
Sau đó chỉ cần dính vào các CustomValidator CssClass vào ValidatorCalloutExtender của bạn:
<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="MyValidatorControl" CssClass="CustomValidator">
Nguồn
2009-01-08 19:18:11