加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将下一个/上一年的按钮添加到asp日历控件

发布时间:2020-12-16 03:28:16 所属栏目:asp.Net 来源:网络整理
导读:需要动态地在ASP日历控件中添加下一年的按钮. 如何在现有的next和prev控件旁边添加它?是否可以通过dayrender事件来做到这一点?请帮忙 解决方法 不,您无法轻松修改现有日历.但也许只需在日历上方放置一个表格行即可选择年份. table tr td asp:DropDownList
需要动态地在ASP日历控件中添加下一年的按钮.

如何在现有的next和prev控件旁边添加它?是否可以通过dayrender事件来做到这一点?请帮忙

解决方法

不,您无法轻松修改现有日历.但也许只需在日历上方放置一个表格行即可选择年份.

<table>
    <tr>
        <td>
            <asp:DropDownList id="drpCalMonth" Runat="Server" OnSelectedIndexChanged="Set_Calendar" AutoPostBack="true"></asp:DropDownList>
            <asp:DropDownList id="drpCalYear" Runat="Server" OnSelectedIndexChanged="Set_Calendar" AutoPostBack="true"></asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Calendar id="cntCalendar" Runat="Server" Width="100%" />
        </td>
    </tr>
</table>

以下是填充年度和月份下拉列表的两种方法:

protected void Populate_MonthList()
{
    //Add each month to the list
    var dtf = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat;
    for(int i=1; i<=12; i++)
        drpCalMonth.Items.Add(new ListItem(dtf.GetMonthName(i),i.ToString()));

    //Make the current month selected item in the list
    drpCalMonth.Items.FindByValue(DateTime.Now.Month.ToString()).Selected = true;
}


protected void Populate_YearList()
{
    //Year list can be changed by changing the lower and upper 
    //limits of the For statement    
    for (int intYear = DateTime.Now.Year - 20; intYear <= DateTime.Now.Year + 20; intYear++)
    {
        drpCalYear.Items.Add(intYear.ToString());
    }

    //Make the current year selected item in the list
    drpCalYear.Items.FindByValue(DateTime.Now.Year.ToString()).Selected = true;
}

您可以从Page_Load初始化列表:

protected void Page_Load(object sender,EventArgs e)
{
    if (!IsPostBack)
    {
        Populate_MonthList();
        Populate_YearList();
    }
}

最后,这里是DropDownLists的SelectedIndexChanged事件的事件处理程序,它设置了新的Date:

protected void Set_Calendar(object Sender,EventArgs e)
{
    int year = int.Parse(drpCalYear.SelectedValue);
    int month = int.Parse(drpCalMonth.SelectedValue);
    cntCalendar.TodaysDate = new DateTime(year,month,1);
}

[测试]

灵感来自:http://www.4guysfromrolla.com/articles/090104-1.aspx(VB)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读