我正在尝试在C#asp.net webform中创建一个下拉列表,该表在本周填充mon-sat,下一个用于预约调度表单。
public void Datetime_Fill()
{
DateTime Date = DateTime.Now;
int sunday_count = 0;
while(sunday_count < 2)
{
if (Date.DayOfWeek != DayOfWeek.Sunday)
{
//Console.WriteLine("The day of the week for {0:d} is {1}.", Date, Date.DayOfWeek);
ddl_Appt_Date.Items.Add(new ListItem(Date.DayOfWeek.ToString()));
Date.AddDays(1);
}
else
{
Date.AddDays(1);
sunday_count++;
}
}
}
我在页面加载时执行此操作,每当我加载它时,我的网页根本不显示,浏览器就在那里加载。我假设Date.DayOfWeek永远不会等于DayOfWeek.Sunday,因此它永远不会离开while循环。我把Console.WriteLine放在那里只是为了排除故障,但仍然没有显示。
答案 0 :(得分:3)
你想做
Date = Date.AddDays(1);
因为Date
永远不会更新。
DateTime.AddDays() returns a new DateTime that adds the specified number of days to the value of this instance.
答案 1 :(得分:1)
另一个解决方案可能是在数据库上有一个表,其中包含要排除的所有日期。这样,您还可以预测一周中是否有假期或类似的事情。
你正在做的事情,你只是在周日起飞。那是你真正需要的吗?
此外,您应该在所有下拉列表中使用value
和text
。
例如:
DropDownList1.Items.Add(new ListItem("<text>", value));
答案 2 :(得分:0)
您必须保存addDay函数的返回值以更新日期对象并达到星期日,所以:
日期= Date.AddDays(1);