gpt4 book ai didi

asp.net - 在 ajax 工具包日历扩展器中仅显示月份和年份

转载 作者:行者123 更新时间:2023-12-02 17:09:43 25 4
gpt4 key购买 nike

请帮忙..如何修改ajax日历扩展器中的日历扩展器显示以仅显示月份和年份,我的意思是日历 View 而不是文本框文本格式,所以我只选择特定年份的月份名称。

最佳答案

所示的 OnClientShown 函数需要做的不仅仅是切换模式。这是我得到的解决方案,它只显示月份,您可以选择月份,并且文本框中仅显示月份和年份。

第 1 步

<asp:CalendarExtender ID="calendar1" ClientIDMode="Static" runat="server"
TargetControlID="txtDate" Format="yyyy-MM"
DefaultView="Months" OnClientShown="onCalendarShown"
OnClientHidden="onCalendarHidden" PopupButtonID="imgStart" />

请注意:ClientIDMode = 静态,DefaultView = 月份以及附加的 OnClientShownOnClientHidden 事件。

您还可以将 Format="yyyy-MM"更改为您想要的任何格式,并在其中包含月份和年份。

第 2 步

创建这些 Javascript 函数。如果您没有加载 JQuery,请将 $find 更改为 document.getElementById

<script type="text/javascript">

function onCalendarHidden() {
var cal = $find("calendar1");

if (cal._monthsBody) {
for (var i = 0; i < cal._monthsBody.rows.length; i++) {
var row = cal._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
Sys.UI.DomEvent.removeHandler(row.cells[j].firstChild, "click", call);
}
}
}
}

function onCalendarShown() {

var cal = $find("calendar1");

cal._switchMode("months", true);

if (cal._monthsBody) {
for (var i = 0; i < cal._monthsBody.rows.length; i++) {
var row = cal._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
Sys.UI.DomEvent.addHandler(row.cells[j].firstChild, "click", call);
}
}
}
}

function call(eventElement) {
var target = eventElement.target;
switch (target.mode) {
case "month":
var cal = $find("calendar1");
cal._visibleDate = target.date;
cal.set_selectedDate(target.date);
//cal._switchMonth(target.date);
cal._blur.post(true);
cal.raiseDateSelectionChanged();
break;
}
}
</script>

代码修改自:http://danajaatcse.wordpress.com/2010/06/14/modifying-a-ajax-calender-control-to-operate-with-only-years/

关于asp.net - 在 ajax 工具包日历扩展器中仅显示月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16682173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com