Ajax模式弹出窗口加载了activex控件

时间:2010-08-04 13:23:53

标签: asp.net ajax activex modal-dialog modalpopups

在页面中有一个activex控件以及一个按钮,其onclick打开一个ajax模式弹出窗口。我面临的问题是,无论何时单击按钮,ajax弹出都会在activex控件后面加载,因此它被隐藏。所以我根本无法使用该控件。 我还没有找到适当的解决方案。我尝试了一个解决方案,其中从ajaxtoolkit代码中删除了浏览器检查条件。但没有运气。我使用Ajax工具包版本3.0.30512.1.let我知道是否有任何解决方案来解决这个问题。

3 个答案:

答案 0 :(得分:1)

任何将DIV或任何HTML元素置于ActiveX之上的努力都无效。即使ActiveX具有比HTML元素更高的z-index,ActiveX仍然始终位于顶部。原因是资源管理器呈现其内容的方式。见

http://support.microsoft.com/default.aspx?scid=kb;en-us;177378

有两种类型的控件:Windowed和Windowless元素,它们在不同的平面上渲染。尽管有了容器的愿望,但所有窗口元素都会在所有无窗元素上自行绘制。但是,窗口元素相对于彼此遵循z-index属性,就像无窗口元素相对于彼此遵循z-index属性一样。

所有无窗口元素都在同一个MSHTML平面上渲染,窗口元素在单独的MSHTML平面上绘制。您可以使用z-index来操纵同一平面上的元素,但不能与不同平面中的元素混合和匹配。您可以重新排列每个平面上元素的z-indexing,但窗口平面始终绘制在无窗平面的顶部。

在大多数情况下,标签是窗口化的。这就是它始终保持领先的原因。

答案 1 :(得分:0)

我没有ActiveX的任何经验,但这可能是一个简单的CSS Z-Index定位问题。您是否确保控件的Z-Index低于模态弹出窗口的Z-Index?

http://www.w3schools.com/css/pr_pos_z-index.asp

答案 2 :(得分:0)

我不确定,但我认为问题是ActiveX,它始终显示在最顶层。

您可以尝试在显示弹出窗口时隐藏ActiveX:

document.getElementById('activex').style.visibility = 'hidden';

然后当您关闭弹出窗口再次显示ActiveX时:

document.getElementById('activex').style.visibility = 'visible';