当用户点击日期时,我在标签上显示工作日。给出了相同的代码
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="" />
现在的问题是,每当我点击标签上的日期时,都应该覆盖,但每次写入日期都与前一个日期相同。理想情况下,它应该在现有日期上写完。
第二个问题是我想显示并获取周数。
有什么想法吗?
答案 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涵盖了有关周数的问题。