2009-06-05 4 views
9

Я добавляю CalendarExtender на страницу, используя стили по умолчанию. Когда я нажимаю кнопку календаря, чтобы вызвать всплывающее окно календаря, календарь отображается нормально. Однако, когда я прокручиваю вниз и снова нажимаю кнопку, позиция календаря не там, где должна быть, как показано ниже.Проблема с позиционированием CalendarExtender

alt text http://ktrauberman.wordpress.com/files/2009/06/calendarproblem.gif

Почему это встречающаяся и как это исправить?

EDIT: Немного о реализации этой страницы.

CalendarExtender и TextBox являются частью веб-страницы, добавленной на страницу SharePoint 2007. Я создаю расширитель выглядеть примерно так:

textBox = new TextBox() { ID = "textBox" }; 
Controls.Add(textBox); 

calendar = new CalendarExtender() 
    { 
     ID = "ceStartDate", 
     TargetControlID = textBox.ID, 
     PopupPosition = CalendarPosition.Right, 
     PopupButtonID = image.ID 
    }; 
Controls.Add(calendar); 

ответ

6

Что такое DOCTYPE страницы? Кроме того, что это за браузер? Я видел эту проблему на страницах с недопустимыми/старыми DOCTYPE с IE6-7 в режиме Quirks.

В режиме quirks значения javascript (например, положение прокрутки) могут быть выключены, что приводит к плохому рендерингу. Вы должны убедиться, что у вас есть действующий DOCTYPE, который заставляет IE работать в стандартном режиме, например ..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+1

страница не имеет DOCTYPE. Я добавил DOCTYPE сверху, и это устранило проблему. Благодаря! –

13

Я столкнулся с той же проблемой сегодня.

Оберните текстовое поле и CalendarExtender в DIV с position:relative;

Это зафиксировал проблему я столкнулся, я надеюсь, что это делает трюк для вас слишком

+3

+1: Это сработало для меня. У меня был правильный DOCTYPE, и я все еще задавался вопросом, что может быть проблемой. Надеюсь, что другие будут исследовать ваш ответ, тот, который принят, не будет работать для них.Для меня это решение работало на нескольких браузерах: Chrome, Mozilla, Opera, IE (как 8, так и 9). –

+0

У меня уже был doctype. И мне понравился подобный стиль. Вот ссылка: http://languagelassi.blogspot.in/2012/08/blog-post.html –

+0

@Dogoku Fine ... В нашем проекте мы используем календарь JavaScript, он все еще отображается в нижней позиции. Пожалуйста, укажите, есть ли способ обхода решения. – TechDo

0

Поскольку это старый пост я нашел пытаюсь решить эта ситуация для меня (неудачная после предыдущих ответов), я думал, что мое решение по тому же вопросу может иметь отношение к другим.

  • Мы где с помощью устаревшей версии: 3.0.xxx
  • Мы должны были обновления до последней версии: 4.1.xxx

Выше версий является версией длл AjaxControlToolkit - а не версию, которую вы видите на NuGet, сегодня пакет NuGet («Инструментарий управления Ajax») будет чем-то вроде 7.xxx.

FYI - Мои исследования: Я использовал образцы последней версии AjaxControlToolkit, чтобы проверить, если моя ошибка была решена, если я модернизировал (так как я точно знал, как воспроизвести свою позицию-выпуск). По крайней мере, один из двух участков ниже, должны работать:

Смежные вопросы