11

我正在开发一个 .NET Web 应用程序,并在其中使用 CalendarExtender 控件让用户指定日期。出于某种原因,当我单击图标显示日历时,背景似乎是透明的。

我在其他页面上使用了扩展器,没有遇到这个问题。

我不确定它是否值得一提,但日历嵌套在一个面板内,该面板上附有一个圆角扩展器,以及它下面的面板(“从”重叠的地方)。

在该面板中,我确实有一个 div 布局设置来创建两列。

编辑:这里要注意的另一件事是,具有名称和昵称的“占位符”的部分都是 ASP.NET 标签控件,如果这很重要的话。

4

6 回答 6

25

所以再四处摸索,我发现了这个问题。部分问题源于我设置的用于创建两个单独列的 div 布局使用 position:relative 和 float:right/left 属性。

根据我的阅读,一旦您开始增加 div 标签的位置属性,它就会影响渲染的 z-index,只有当日历控件动态“弹出”时才会变得复杂。

不幸的是,CalendarExtender 没有 Z-Index 属性,除非您想为日历编写完整的样式,而我不想这样做。但是,您可以通过将以下内容添加到 CSS 文件来扩展默认样式:

.ajax__calendar_container { z-index : 1000 ; }

如果您不使用 CSS 文件,您也可以将其添加到页面的 head 部分:

<style type="text/css">
   .ajax__calendar_container { z-index : 1000 ; }
</style>

这应该可以解决问题。它对我有用。

如果由于某种原因这不起作用(并且有些人仍然报告问题),更“激进”的方法是将输入字段和 CalendarExtender 包装在 DIV 标记中,然后将以下内容添加到您的 CSS 文件/HEAD 部分:

.ajax__calendar {
    position: relative;
    left: 0px !important;
    top: 0px !important;
    visibility: visible; display: block;
}
.ajax__calendar iframe
{
    left: 0px !important;
    top: 0px !important;
}

...希望这对你有用。

于 2008-11-20T19:48:07.207 回答
3

我发现解决 IE7 中的问题的唯一方法是向我遇到问题的页面添加一些额外的 CSS。没有多少 z-indexing 或 div 包装和重新设计有效果。

以下更改控件堆叠上下文。

.ajax__calendar_container
{
    position:static;
}

这确实会导致日历弹出窗口垂直显示在扩展器控件的上方,而不是正常的垂直下方。对我来说这是可以接受的。

于 2013-02-12T13:11:40.893 回答
0

这对我来说看起来并不透明,它看起来像是在“隐藏”其他元素。您是否为任何项目指定了“z-index”?

于 2008-11-19T15:31:05.153 回答
0

我有一个类似的问题,我用字段集上的 z 索引修复了

如果你有

<fieldset> some content... including ajax popup </fieldset>
<fieldset> some more content </fieldset>

然后 ajax 弹出窗口在第二个字段集下方弹出,以修复将第一个字段集上的 z-index 设置为高于第二个字段集的 z-index,即如下所示。

<fieldset style="z-index: 2;"> some content... including ajax popup </fieldset>
<fieldset style="z-index: 1;"> some more content </fieldset> 
于 2009-05-14T22:51:48.603 回答
0

我发现解决这个问题的唯一方法是为 calendarExtender 编写一些 css 规则。它对我有用。代码如下:

https://gist.github.com/carlosmr12/5825371

于 2013-06-20T18:37:24.493 回答
0

如果这些答案不能正常工作,则可能是隐藏溢出的问题。这可以使用以下 css 解决:

.ajax__scroll_none {
    overflow: visible !important;
    z-index: 10000 !important;
}
于 2017-07-05T10:46:00.880 回答