在接下来的两个工作周内填充下拉列表c#

时间:2013-09-20 19:26:47

标签: c# asp.net drop-down-menu while-loop

我正在尝试在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放在那里只是为了排除故障,但仍然没有显示。

3 个答案:

答案 0 :(得分:3)

你想做

Date = Date.AddDays(1);

因为Date永远不会更新。

来自MSDN DateTime :

DateTime.AddDays() returns a new DateTime that adds the specified number of days to the value of this instance.

答案 1 :(得分:1)

另一个解决方案可能是在数据库上有一个表,其中包含要排除的所有日期。这样,您还可以预测一周中是否有假期或类似的事情。

你正在做的事情,你只是在周日起飞。那是你真正需要的吗?

此外,您应该在所有下拉列表中使用valuetext

例如:

    DropDownList1.Items.Add(new ListItem("<text>", value));

答案 2 :(得分:0)

您必须保存addDay函数的返回值以更新日期对象并达到星期日,所以:

日期= Date.AddDays(1);