我使用默认样式向页面添加了一个CalendarExtender。当我单击日历按钮触发日历弹出时,日历将正常显示。但是,当我向下滚动并再次单击按钮时,日历的位置不是它应该在的位置,如下所示。

为什么会发生这种情况,我该如何解决呢?
编辑:--关于此页面实现的一点信息。
CalendarExtender和TextBox是添加到SharePoint 2007页面的WebPart的一部分。我正在创建这样的扩展程序:
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);发布于 2009-06-05 23:47:24
页面的多塞佩是什么?另外,它是什么浏览器?我在带有IE6-7的带有无效/旧DOCTYPEs的页面上看到了这个问题。
在古怪模式下,javascript值(如滚动位置)可以关闭,从而导致错误的呈现。您应该确保您有一个有效的DOCTYPE,它强制IE进入标准模式,例如..。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">发布于 2010-08-18 13:34:19
我今天遇到了同样的问题。
将文本框和calendarExtender用position:relative;包装在div中
这解决了我所面临的问题,我希望这对你也有好处。
发布于 2014-09-08 11:29:00
由于这是一个我发现自己试图解决这个问题的旧帖子(在之前的回答之后没有成功),我认为我对同一问题的解决方案可能与其他人有关。
上面的版本是AjaxControlToolkit dll版本--不是您在NuGet上看到的版本,今天的NuGet包(“AjaxControlToolkit”)将类似于7.xxx。
FYI -我的研究:我一直在使用最新的AjaxControlToolkit版本的样本来验证我的错误是否被解决了,如果我升级了(因为我知道如何准确地复制我的位置问题)。以下两个地点中至少有一个应能发挥作用:
https://stackoverflow.com/questions/958555
复制相似问题