Asp.net Ajax模式弹出窗口加载到activex控件后面

Asp.net Ajax模式弹出窗口加载到activex控件后面,asp.net,ajax,activex,modal-dialog,modalpopups,Asp.net,Ajax,Activex,Modal Dialog,Modalpopups,页面中有一个activex控件和一个按钮,单击该按钮可打开一个ajax模式弹出窗口。我面临的问题是,每当单击按钮时,ajax弹出窗口就会加载到activex控件后面,因此它是隐藏的,所以我根本无法使用该控件。 我还没有找到一个合适的解决办法。我尝试了一个从ajaxtoolkit代码中删除浏览器检查条件的解决方案。但是没有运气。我使用的是Ajax toolkit版本3.0.30512.1。请告诉我是否有解决此问题的解决方案。我对ActiveX没有任何经验,但这可能是一个简单的CSS Z索引定位问题

页面中有一个activex控件和一个按钮,单击该按钮可打开一个ajax模式弹出窗口。我面临的问题是,每当单击按钮时,ajax弹出窗口就会加载到activex控件后面,因此它是隐藏的,所以我根本无法使用该控件。
我还没有找到一个合适的解决办法。我尝试了一个从ajaxtoolkit代码中删除浏览器检查条件的解决方案。但是没有运气。我使用的是Ajax toolkit版本3.0.30512.1。请告诉我是否有解决此问题的解决方案。

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


我不确定,但我认为问题在于ActiveX,它总是显示在最上面

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

document.getElementById('activex').style.visibility = 'hidden';
然后,当您关闭弹出窗口时,再次显示ActiveX:

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

将DIV或任何HTML元素置于ActiveX之上的任何努力都没有效果。ActiveX始终位于顶部,即使其z索引高于HTML元素。原因是浏览器呈现其内容的方式。看

有两种类型的控件:窗口化和无窗口元素,它们在单独的平面上渲染。所有带窗口的元素都会在所有无窗口元素的顶部绘制自己,尽管它们的容器是这样的。但是,有窗口的元素彼此遵循z-index属性,就像无窗口的元素彼此遵循z-index属性一样

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


在大多数情况下,标记是窗口化的。这就是为什么它总是排在第一位。

这个答案绝对正确;FireBreath支持创建无窗口activex控件,但这是一个难题,大多数控件不支持它,因为控件没有自己的HWND。如果这不起作用,请尝试将宽度和高度设置为1;如果使某些ActiveX控件实际上不可见,则它们的行为可能会异常,因为浏览器可能会停用该控件。Lenciel的回答绝对是这里发生的事情——我自己也解释得再好不过了。我已经很久没有发布这个问题了,现在看到一条评论我很惊讶实际上,我们对页面流做了一些更改,使这个activex成为页面上的单个控件。当时,它是一个快速修复方法,可以交付站点。