2

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++;
        }
    }
}

これをページの読み込み時に実行し、読み込むたびに Web ページがまったく表示されず、ブラウザが読み込まれます。Date.DayOfWeek が DayOfWeek.Sunday と等しくなることはないと想定しているため、while ループを離れることはありません。トラブルシューティングのために Console.WriteLine をそこに入れましたが、まだ何も表示されません。

4

3 に答える 3

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.

于 2013-09-20T19:31:10.460 に答える
1

別の解決策は、除外するすべての日付を含むテーブルをデータベースに置くことです。そうすれば、平日に休日があるかどうかなども予測できます。

あなたがしているやり方では、あなたは日曜日に離陸するだけです。それはあなたが本当に必要としているものですか?

また、すべてのドロップダウンリストを操作する必要がvalueあります。text

例えば:

    DropDownList1.Items.Add(new ListItem("<text>", value));
于 2013-09-20T19:41:38.667 に答える
0

日付オブジェクトを更新して日曜日に到達するには、addDay 関数の戻り値を保存する必要があります。

日付 = Date.AddDays(1);

于 2013-09-20T19:37:55.617 に答える