【问题标题】:Calendar_VisibleMonthChanged returns only only months changedCalendar_VisibleMonthChanged 返回仅更改的月份
【发布时间】:2015-10-01 04:00:53
【问题描述】:

我有这个代码:

protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
    DateTime date = Convert.ToDateTime(Calendar1.VisibleDate.ToString("M, y"));
    Label2.Text = date.ToString("MM, yyyy") + "г.";
}

当我在日历中更改月份时,Label2.text 总是包含 2015(当前)年的月份,即使我在日历中更改月份 13 次。例如,在日历中我看到 2016 年 1 月 1 日,但在标签中仍然是 2015 年 1 月 1 日。

【问题讨论】:

    标签: c# asp.net datetime calendar


    【解决方案1】:

    您可能发现了一个错误。无论如何,这是可行的:

    Label2.Text = e.NewDate.ToString("MM, yyyy") + "г.";
    

    【讨论】:

    • 但是如果我想调用 ShowYear 方法,当 VisibleMonthChanged 时,我如何从方法中访问 NewDate? “代码”protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e) { ShowYear(); }protected void ShowYear() { DateTime date = Convert.ToDateTime(Calendar1.VisibleDate.ToString("M, y")); Label2.Text = date.ToString("MM, yyyy") + "г."; }Label2.Text = e.NewDate.ToString("MM, yyyy") + "г."; 在这里不起作用
    • 在这种情况下,ShowYear(); 将是 ShowYear(MonthChangedEventArgs e);,protected void ShowYear() 将是 protected void ShowYear(MonthChangedEventArgs e)
    • @MohitShrivastava 不幸的是,当我调用方法 ShowYear(MonthChangedEventArgs e); 它返回错误:System.Web.UI.WebControls.MonthChangedEventArgs 是一个“类型”,但用作“变量”
    【解决方案2】:

    根据@Steve 上的评论,您的代码应该是

    protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e) 
    {
        ShowYear(e); 
    } 
    protected void ShowYear(MonthChangedEventArgs e) 
    { 
        Label2.Text = e.NewDate.ToString("MM, yyyy") + "г."; 
    }
    

    【讨论】:

    • 我找不到怎么办
    • @DenisovJr。只需复制和粘贴,它应该可以工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多