在标签上显示周日期

时间:2014-01-30 10:30:57

标签: c# asp.net

当用户点击日期时,我在标签上显示工作日。给出了相同的代码

C#

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
 {

     DateTime input = Calendar1.SelectedDate;
     int delta = DayOfWeek.Sunday - input.DayOfWeek;
     DateTime firstDay = input.AddDays(delta);

     for (int i = 0; i < 6; i++)
         Label2.Text += ((DateTime)(firstDay.Add(new TimeSpan(i, 0, 0, 0)))).ToShortDateString() + "  ";
 }

ASPX

<asp:Calendar runat="server" ID="Calendar1" OnSelectionChanged="Calendar1_SelectionChanged" />
<asp:Label ID="Label2" runat="server" Text="" />

现在的问题是,每当我点击标签上的日期时,都应该覆盖,但每次写入日期都与前一个日期相同。理想情况下,它应该在现有日期上写完。

第二个问题是我想显示并获取周数。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为您需要做的就是在SelectionChanged事件中将label2文本设置为空,即

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
       {
            DateTime input = Calendar1.SelectedDate;
            int delta = DayOfWeek.Sunday - input.DayOfWeek;
            DateTime firstDay = input.AddDays(delta);

            Label2.Text = string.Empty;

            for (int i = 0; i < 6; i++)
                Label2.Text += ((DateTime)(firstDay.Add(new TimeSpan(i, 0, 0, 0)))).ToShortDateString() + "  ";
        }

question涵盖了有关周数的问题。