2013-06-26 3 views
1

Я использую контроллер Calendar в моем приложении веб-форм asp.net. Я следовал this article для реализации Calendar в своем приложении. Я добавляю выбранные дни в List<DateTime>, чтобы запомнить выбранные даты и использовать их в будущих действиях.Выберите даты в asp.net Календарь программно

Теперь у меня есть кнопки на моей странице, как Select Weekends, Select Weekdays, Select Month и Select Year.

  • если нажать на кнопку Select Weekends, мне нужно выбрать все выходные дни текущего месяца и добавить их в List<DateTime>.

  • , если я нажимаю на кнопку Select Weekdays, мне нужно выбрать все дни недели текущего месяца и добавить их в List<DateTime>.

  • если я нажимаю на кнопку Select Month **, мне нужно выбрать все дни текущего месяца и добавить их в List<DateTime>.

  • , если я нажимаю на кнопку Select Year, мне нужно выбрать все дни текущего года и добавить их в List<DateTime>.

Как это сделать с помощью C#?

ответ

2

Я не думаю, что есть чудо-решение, вот как я напишу 2 метода для того, что вы хотите в выходные дни. В других случаях вы можете сделать более или менее одно и то же:

protected void WeekendDays_Button_Click(object sender, EventArgs e) 
    { 
     this.SelectWeekEnds(): 
    } 

    private void SelectWeekEnds(){ 
     //If you need to get the selected date from calendar 
     //DateTime dt = this.Calendar1.SelectedDate; 

     //If you need to get the current date from today 
     DateTime dt = DateTime.Now; 

     List<DateTime> weekendDays = this.SelectedWeekEnds(dt); 
     weekendDays.ForEach(d => this.Calendar1.SelectedDates.Add(d)); 
    } 

    private List<DateTime> GetWeekEndDays(DateTime DT){ 
     List<DateTime> result = new List<DateTime>(); 
     int month = DT.Month; 
     DT = DT.AddDays(-DT.Day+1);//Sets DT to first day of month 

     //Sets DT to the first week-end day of the month; 
     if(DT.DayOfWeek != DayOfWeek.Sunday) 
      while (DT.DayOfWeek != DayOfWeek.Saturday) 
       DT = DT.AddDays(1); 

     //Adds the week-end day and stops when next month is reached. 
     while (DT.Month == month) 
     { 
      result.Add(DT); 
      DT = DT.AddDays(DT.DayOfWeek == DayOfWeek.Saturday ? 1 : 6); 
     } 
     return result; 
    } 
+0

Мне нужно изменить цвет в выбранные даты. Как я могу это сделать ? – Bishan

+0

Пример: this.Calendar1.SelectedDayStyle.BackColor = System.Drawing.Color.Red; – TTT

+0

Вы можете объяснить эту строку, пожалуйста? 'DT = DT.AddDays (DT.DayOfWeek == DayOfWeek.Saturday? 1: 6);'. Я пытаюсь получить недельные дни. но все еще не в состоянии сделать это правильно. – Bishan