Как удалить на прошлой неделе календаря

Я не уверен, почему другие люди не спросили это прежде. Но Вы сделали, замечают, что asp:Calendar показывает дополнительную неделю в конце?

Например, если VisibleMonth установлен до 01.03.2010 и FirstDayOfWeek к воскресенью: Это покажет 6 недель.

  1. 28 февраля до 6 марта
  2. 7 марта до 13 марта
  3. 14 марта до 20 марта
  4. 21 марта до 27 марта
  5. 28 марта до 3 апреля
  6. 4 апреля до 10 апреля

Я задавался вопросом, почему Microsoft показывает последнюю строку, которая находится полностью на апреле. Я пытался искать сеть свойство, но это, кажется, не является существующим.

Единственное решение, о котором я мог думать, состоит в том, чтобы переопределить Pre_Render и проверить всю отдельную дату, если они все еще в течение недели после VisibleDate. Но конечно который является экстремальным значением, проверяющим, так как каждый рендеринг управления показывает его.

Вот моя работа вокруг.

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    int dayOfWeek = Convert.ToInt16(e.Day.Date.DayOfWeek);
    int compensate = dayOfWeek - Convert.ToInt16(DayOfWeek.Sunday);
    DateTime WeekStart = e.Day.Date.AddDays(-1 * compensate);
    DateTime WeekEnd = WeekStart.AddDays(6);

    // If the start and end of the week does not have relevance to the current month
    if (WeekStart.Month != Calendar1.VisibleDate.Month &&
        WeekEnd .Month != Calendar1.VisibleDate.Month)
    {
        e.Cell.Text = "";
        e.Cell.Height = 0;
        e.Cell.Visible = false;
    }
}
6
задан Joe Doyle 30 April 2012 в 23:46
поделиться