在webcalendar-element c#.net asp.net中迭代每一天

时间:2013-11-25 13:09:10

标签: c# asp.net

另一个网络日记问题......

我想做的是:

我有一个网络平台。在每个工作日,都有一个下拉列表,其中有几个项目可供选择(例如,假日,离开,blabla ......)打开日历的人应该在每天看到他当天所做的条目。如果数据库中的那一天是值,则用户应该看到数据库中的值。如果没有,用户应该看到下拉列表。

在数据库中没有条目的那一天,用户应该能够选择一个值,当他点击“保存”时,下拉列表中的值应该保存到数据库中。

我的问题是如何做到最好: 我想我要做的是每天在celandar中迭代并检查,如果对应于那个日历日的日期,那么数据库中有和条目。如果是,我显示该条目(我知道如何将数据库中的值插入下拉列表),如果没有,我只显示下拉列表。

那么:我如何迭代月中的每一天并将当天的日期与数据库中的日期进行比较?

并且:当从菜单中选择该人的姓名时,用户应该能够看到其他人的条目。因此,在这种情况下,我必须使用单独的方法访问DayRender事件之外的日历的每一天并进行迭代。

如果你认为我在这里想的太复杂,请随意提出其他方法来做到这一点!

感谢您的帮助和提示!

PS。如果有必要,我会发布一些代码,当然。

UPDATE 这里有一些代码可以让事情更清晰(希望如此)

DayOfWeek comptag = e.Day.Date.DayOfWeek;
                    string tutu = e.Day.Date.ToString();
                    string ghgh = ds2.Tables[0].Rows[0]["Date"].ToString();

                    if (comptag != DayOfWeek.Saturday && comptag != DayOfWeek.Sunday && e.Day.IsOtherMonth == false && ghgh == tutu)
                    {
                        e.Cell.Controls.Add(dropdownlist2);
                    }
                    else
                    {
                        if (comptag != DayOfWeek.Saturday && comptag != DayOfWeek.Sunday && e.Day.IsOtherMonth == false)
                        {
                            e.Cell.Controls.Add(dropdownlist);
                        }
                    }

因此,我将每月的每一天与数据库中的日期进行比较。我遇到的麻烦是迭代:如果我有一个日期,如何比较数据库中的每一行?现在,我只获得第一行,因此第一次约会。但如果我在数据库中有4个日期,我需要比较所有四个日期。如果我写

string ghgh = ds2.Tables[0].Rows[i]["Date"].ToString();

然后把像i ++这样的东西用于迭代,在第i次没有更多的日期行之后我得到一个错误...

1 个答案:

答案 0 :(得分:0)

我已经得到了,万一有人需要这个。如果数据库中有条目,则检查正在呈现的每个日历日。它有效,但它肯定不是最好的解决方案(因为我不是那么好)。

DayOfWeek comptag = e.Day.Date.DayOfWeek;
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
    string thisday = e.Day.Date.ToString();
    string dayfromdb = ds2.Tables[0].Rows[i]["Date"].ToString();
    list.Add(dayfromdb);

    if (comptag != DayOfWeek.Saturday && comptag != DayOfWeek.Sunday && e.Day.IsOtherMonth == false && dayfromdb == thisday)
    {
        e.Cell.Controls.Add(auswahlliste2);
    }
    else if (comptag != DayOfWeek.Saturday && comptag != DayOfWeek.Sunday && e.Day.IsOtherMonth == false && liste.Contains(thisday)==false)
    {
        e.Cell.Controls.Add(auswahlliste);
    }
} // Ende for