【问题标题】:Control static on page控制页面上的静态
【发布时间】:2009-09-14 10:45:49
【问题描述】:

这个问题有点棘手,如果有不清楚的地方,请解释一下。

所有遵循此逻辑的页面都会发生这种情况:

  • 页面顶部的 asp:ValidationSummary
  • 一些客户端验证器
  • 一个 Telerik RadUpload 控件

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

如果我强制浏览器重新渲染页面(例如,将缩放比例更改为 125%,然后再回到 100%),RadUpload 将显示在它应该在的位置(向下滑动以为 ValidationSummary 控件留出空间)。

有没有人能解决这个问题?现在我正在尝试使用 javascript 来强制刷新,但它并不是那么简单......

【问题讨论】:

  • 如果没有链接,您可以提供有关页面样式的更多详细信息

标签: asp.net telerik render radupload


【解决方案1】:

问题很可能出在页面样式上——position: relative bug for IE。如果有一个滚动容器,添加 position: relative 到它,问题应该会消失。

另一种选择是通过调用如下脚本来“重绘”RadUpload 控件:

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

或通过添加以下 CSS 来触发 IE 的hasLayout

.RadUpload { zoom: 1 !important }

(选择器取决于您正在使用的套件版本 - 我假设 ASP.NET AJAX 在 Q1.2009 之后)

【讨论】:

  • 该页面不可公开访问.. 不能滚动... 现在我保持我之前的猜测,问题是 RadUpload。我已经为自定义验证器替换了必填字段验证器,因为这会强制往返服务器,它解决了我的问题。然而,这只是一种解决方法,而不是解决方案......
  • 我在回答中添加了更多建议 - 我希望它们会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
相关资源
最近更新 更多