【问题标题】:Populating a Dropdown List with the next two business weeks c#用接下来的两个工作周填充下拉列表 c#
【发布时间】:2013-09-26 07:01:18
【问题描述】:

我正在尝试在 C# asp.net 网络表单中创建一个下拉列表,该列表填充本周的 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 放在那里只是为了进行故障排除,但仍然没有显示任何内容。

【问题讨论】:

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


    【解决方案1】:

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

    按照你的方式,你只是在周日起飞。那是你真正需要的吗?

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

    例如:

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

    【讨论】:

      【解决方案2】:

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

      日期 = Date.AddDays(1);

      【讨论】:

        【解决方案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.

        【讨论】:

        • 哇,我觉得自己像个白痴,即使我的嘘声过来看看,他也没有抓住那个以太。非常感谢
        猜你喜欢
        • 2020-12-01
        • 2015-02-27
        • 1970-01-01
        • 2023-03-19
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        相关资源
        最近更新 更多