2009-09-14 87 views
0

这个问题有点棘手,如果有什么不明确的地方,请问解释一下。控制静态页面

这happing了按照这一逻辑所有页面:

  • 一条毒蛇的ValidationSummary在页面的顶部
  • 一些客户端验证
  • 一个Telerik的RadUpload控制

当客户端验证器被触发并且错误消息显示在ValidationSummary控件中时,会发生问题。页面上的每个控件都会“向下滑动”,以便为ValidationSummary控件创建空间,但RadUpload保持在同一位置并最终位于某个其他控件的顶部。

如果我强制浏览器重新渲染页面(例如将缩放比例更改为125%,然后恢复为100%),则会显示RadUpload的位置(滑下以为“验证摘要”控制)。

有没有人有解决这个问题的办法?现在我正在尝试使用JavaScript来强制刷新,但它不是那么复杂......

+0

您可以提供有关页面样式的更多详细信息(如果没有链接) – 2009-09-15 12:46:44

回答

2

这很可能是问题在于页面样式 - 有position: relative bug for IE。如果存在滚动容器,请添加位置:相对于此容器,问题应该消失。

另一种方法是通过调用这样一个脚本来 “重绘” 的RadUpload控制:通过添加以下CSS

var upload = document.getElementById('<%= RadUpload1.ClientID'); 
upload.style.cssText = upload.style.cssText; 

或触发IE的hasLayout

.RadUpload { zoom: 1 !important } 

(选择取决于您使用的套件版本 - 我假设在2009年第一季度之后使用ASP.NET AJAX)

+0

该页面不可用于公共访问..不滚动...现在我保持我以前的猜测,问题是RadUpload。我已经替换了自定义验证程序的必需字段验证程序,并且因为这会强制服务器往返,所以它解决了我的问题。 但是,这只是一个解决方法,而不是一个解决方案... – Sergio 2009-09-15 13:27:46

+0

我已经添加了更多的建议,我的答案 - 我希望他们会帮助。 – 2009-09-15 14:58:37