Asp.net-Ajax

為什麼我的 CalendarExtender 在渲染時會重疊?

  • July 5, 2017

我正在開發一個 .NET Web 應用程序,並在其中使用 CalendarExtender 控制項讓使用者指定日期。出於某種原因,當我點擊圖示顯示日曆時,背景似乎是透明的。

我在其他頁面上使用了擴展器,沒有遇到這個問題。

我不確定它是否值得一提,但日曆嵌套在一個面板內,該面板上附有一個圓角擴展器,以及它下面的面板(“從”重疊的地方)。

在該面板中,我確實有一個 div 佈局設置來創建兩列。

編輯:這裡要注意的另一件事是,具有名稱和暱稱的“佔位符”的部分都是 ASP.NET 標籤控制項,如果這很重要的話。

所以再四處摸索,我發現了這個問題。部分問題源於我設置的用於創建兩個單獨列的 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;
}

…希望這對你有用。

引用自:https://stackoverflow.com/questions/302244