如何重新定位asp.net ajax Validator Callout Extender

如何重新定位asp.net ajax Validator Callout Extender,asp.net,asp.net-ajax,Asp.net,Asp.net Ajax,我正在使用AjaxControlToolkit版本3.0.20299.9中的ValidatorCalloutExtender。验证正在设置了resizable=0的浏览器窗口中进行。弹出框的位置主要位于可视窗口的外侧-右侧 它在AjaxControlToolkit版本1.0.10618.0中已正确定位。它实际上漂浮在文本框上,弹出窗口的右侧正好在可视窗口的右侧,边距约为5px。由于我们升级了AjaxControlToolkit的版本,它的呈现方式似乎有所不同。有人知道我需要做什么才能让弹出式按钮

我正在使用AjaxControlToolkit版本3.0.20299.9中的ValidatorCalloutExtender。验证正在设置了resizable=0的浏览器窗口中进行。弹出框的位置主要位于可视窗口的外侧-右侧


它在AjaxControlToolkit版本1.0.10618.0中已正确定位。它实际上漂浮在文本框上,弹出窗口的右侧正好在可视窗口的右侧,边距约为5px。由于我们升级了AjaxControlToolkit的版本,它的呈现方式似乎有所不同。有人知道我需要做什么才能让弹出式按钮正确定位吗?我一直在使用.ajax\uu validator callout\u*css类,但我所做的所有更改似乎都会使显示变得糟糕。

所有浏览器都会出现这种情况吗?IE6以渲染问题而闻名,我强烈建议使用其他方法。IE7,FF,Safari,除了IE6


验证器是否放置在外部div中?检查外部分区的CSS。

我找到了这个分区。我想我会为任何感兴趣的人发布一个答案。AjaxControlToolkit的两个版本的呈现方式不同。为了重新定位ValidatorCallout窗口,我发现以下方法效果最好

您必须覆盖工具箱使用您自己的自定义样式生成的所有.ajax\uu validatorcallout\u*css类。这很奇怪,但似乎您必须覆盖每个样式才能使其正常工作。我使用FirefoxWebDev工具栏来发现正在生成的样式,然后按如下方式重写它们

<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>

.CustomValidator{位置:相对;左边距:-80px;}
.CustomValidator div{边框:纯黑1px;背景色:LemonChiffon;位置:相对;}
.CustomValidator td{边框:纯黑1px;背景色:LemonChiffon;}
.CustomValidator.ajax\uu validatorcallout\u popup\u表{显示:无;边框:无;背景色:透明;填充:0px;}
.CustomValidator.ajax\uuuValidator调用\uPopup\uTable\uRow{垂直对齐:顶部;高度:100%;背景色:透明;填充:0px;}
.CustomValidator.ajax\u validatorcallout\u callout\u单元格{宽度:20px;高度:100%;文本对齐:右;垂直对齐:顶部;边框:无;背景色:透明;填充:0px;}
.CustomValidator.ajax\u validatorcallout\u callout\u表{高度:100%;边框:无;背景色:透明;填充:0px;}
.CustomValidator.ajax\u validatorcallout\u callout\u table\u行{背景色:透明;填充:0px;}
.CustomValidator.ajax\u validatorcallout\u callout\u arrow\u单元格{填充:8px 0px 0px 0px;文本对齐:右;垂直对齐:顶部;字体大小:1px;边框:无;背景色:透明;}
.CustomValidator.ajax\uuu validatorcallout\u arrow\u cell.ajax\uu validatorcallout\u innerdiv{font size:1px;position:relative;left:1px;border-bottom:none;border-right:none;border-left:none;width:15px;背景色:透明;padding:0px;}
.CustomValidator.ajax\uuu validatorcallout\u arrow\u cell.ajax\uu validatorcallout\u innerdiv div{height:1px;overflow:hidden;border top:none;border bottom:none;border right:none;padding:0px;margin left:auto;}
.CustomValidator.ajax__validatorcallout_错误_消息_单元格{字体系列:Verdana;字体大小:10px;填充:5px;右边框:无;左边框:无;宽度:100%;}
.CustomValidator.ajax\uuuValidatorCallout\u图标\u单元格{宽度:20px;填充:5px;右边框:无;}
.CustomValidator.ajax\u验证器调用\u关闭\u按钮\u单元格{垂直对齐:顶部;填充:0px;文本对齐:右侧;边框左侧:无;}
.CustomValidator.ajax\uuu validatorcallout\u close\u button\u cell.ajax\uuu validatorcallout\u innerdiv{边框:无;文本对齐:居中;宽度:10px;填充:2px;光标:指针;}
注意:我在生成的类中添加了第一个.CustomValidator{position:relative;margin left:-80px;}行。我还打开了.CustomValidator div、.CustomValidator td,以便添加位置:relative;给div而不是td。左边的边距:-80px是我将所有东西移到左边所需要的

然后将CustomValidator CssClass粘贴到Validator Callout Extender中:

<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="MyValidatorControl" CssClass="CustomValidator">