我正在使用 CalendarExtender 控件,它是分配文本框,CalendarExtender 在文本框下方很好,但我的问题是我在页面底部有一个文本框,所以需要向下滚动并选择文本框。这是我滚动并选择文本框时的问题,我的日历显示在屏幕上方的某个位置,而不是完全正确的位置。我更改分辨率以避免滚动,这很好。但我的页面需要强制滚动。
请任何人给我解决方案
这只发生在谷歌浏览器中。
我正在使用 CalendarExtender 控件,它是分配文本框,CalendarExtender 在文本框下方很好,但我的问题是我在页面底部有一个文本框,所以需要向下滚动并选择文本框。这是我滚动并选择文本框时的问题,我的日历显示在屏幕上方的某个位置,而不是完全正确的位置。我更改分辨率以避免滚动,这很好。但我的页面需要强制滚动。
请任何人给我解决方案
这只发生在谷歌浏览器中。
我找到了这个解决方案:
创建一个新的 Div,其位置设置为 relative (style="position:relative;")
Div 必须包含文本框和扩展器
希望这对你有用
我做了一个函数来避免这种情况,只需添加:
<script type="text/javascript" language="javascript">
function onCalendarShown(calendar) {
var top = $("#" + calendar._element.id).offset().top + $("#" + calendar._element.id).height() + 5;
$("#" + calendar._container.id).css({ 'top': (top + 'px') });
}
</script>
并在 CalendarExtender 中添加属性 OnClientShown="onCalendarShown"。
原始海报可能有点晚了,但以下有两个建议,后者对我有用:
有一个PopupPosition
属性指示日历弹出窗口应出现在BottomLeft(default), BottomRight, TopLeft, TopRight, Left or Right of the TextBox
. 分配您的文本框 TopLeft 或 TopRight 位置。
<ajaxToolkit:Calendar runat="server"
TargetControlID="Date1"
CssClass="ClassName"
Format="MMMM d, yyyy"
PopupButtonID="Image1" PopupPosition="Give your desired position" />
由于这是一篇旧帖子,我认为我对同一问题的解决方案可能与其他人相关。
以上版本是 AjaxControlToolkit dll 版本 - 不是您在 NuGet 上看到的版本,今天 NuGet 包(“Ajax Control Toolkit”)将类似于 7.xxx。
仅供参考 - 我的研究:我一直在使用最新 AjaxControlToolkit 版本的示例来验证如果我升级了我的错误是否得到解决(因为我确切地知道如何重现我的位置问题)。以下两个站点中的至少一个应该可以工作:
只需将以下代码放入您的页面
<style type="text/css" rel="stylesheet">
.ajax__calendar {
position : absolute;
}
</style>
解决此问题的最佳方法是在页面顶部添加一个 ajax 程序集:
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>
并且不要忘记将日历扩展器上的标记前缀添加为“ajaxToolkit”。如果是别的东西:
前任:
<ajaxToolkit:CalendarExtender ID="txtPostingDate_CalendarExtender"
runat="server" Enabled="True" TargetControlID="txtPostingDate"
Format="MM/dd/yyyy">
</ajaxToolkit:CalendarExtender>