Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Книги по теме

Искать:
в:
Порядок:

Исходник

Автор:

alexds

 
Название:

Время зависимая панель

Дата: 17 October 2008
Описание: Контрол, представленный ниже, это панель, обладающая особыми свойствами. Эту панель можно настроить, чтобы она показывалась только в определенное время на сайте. Самый простой способ для вывода приветствия на сайте (типа доброе утро, добрый вечер, доброй ночи...). Этот контрол использовался в частности на портале DoWork.ru 
  Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения следующую строку: [CODEPOST ID=238]Время зависимая панель[/CODEPOST]
Оценка: Проголосовало 6 посетителей, средняя оценка 2.83
Оценить:
  1 using System;
  2 using System.ComponentModel;
  3 using System.Web.UI.WebControls;
  4 
  5 
  6 
  7 namespace DoWork.Presenters.Controls
  8 {
  9     /// <summary>
 10     /// Time depended panel. The panel content is showed only in certain time.
 11     /// </summary>
 12     /// <remarks>
 13     /// The panel content is showed only in certain time. 
 14     /// Define start and end showing time in 
 15     /// <see cref="StartTime"/> and <see cref="EndTime"/> 
 16     /// properties.
 17     /// </remarks>
 18     /// <example>
 19     /// <code>
 20     /// &lt;%@ Register TagPrefix="cmsco" Namespace="DoWork.Controls" Assembly="DoWork" %&gt;
 21     /// 
 22     /// &lt;cmsco:TimeDependedPanel ID="TimeDependedPanel1" runat="server" 
 23     /// 	StartTime="0:00" EndTime="6:00" &gt;
 24     ///	Good night
 25     /// &lt;/cmsco:TimeDependedPanel&gt;
 26     /// 
 27     /// lt;cmsco:TimeDependedPanel ID="TimeDependedPanel2" runat="server" 
 28     /// 	StartTime="6:00" EndTime="12:00" &gt;
 29     ///	Good morning
 30     /// &lt;/cmsco:TimeDependedPanel&gt;
 31     /// 
 32     /// &lt;cmsco:TimeDependedPanel ID="TimeDependedPanel3" runat="server" 
 33     /// 	StartTime="12:00" EndTime="18:00" &gt;
 34     ///	Good day
 35     /// &lt;/cmsco:TimeDependedPanel&gt;
 36     /// 
 37     /// &lt;cmsco:TimeDependedPanel ID="TimeDependedPanel4" runat="server" 
 38     /// 	StartTime="18:00" EndTime="0:00" &gt;
 39     ///	Good evening
 40     /// &lt;/cmsco:TimeDependedPanel&gt;
 41     /// </code>
 42     /// </example>
 43     public class TimeDependedPanel : PlaceHolder
 44     {
 45         #region Properties
 46 
 47         private TimeSpan _StartTime = new TimeSpan();
 48 
 49 
 50         /// <summary>
 51         /// Start time of showing.
 52         /// </summary>
 53         [TypeConverter(typeof (TimeSpanConverter))]
 54         public TimeSpan StartTime
 55         {
 56             get { return _StartTime; }
 57             set { _StartTime = value; }
 58         }
 59 
 60 
 61 
 62         private TimeSpan _EndTime = new TimeSpan();
 63 
 64 
 65         /// <summary>
 66         /// End time of showing.
 67         /// </summary>
 68         [TypeConverter(typeof (TimeSpanConverter))]
 69         public TimeSpan EndTime
 70         {
 71             get { return _EndTime; }
 72             set { _EndTime = value; }
 73         }
 74 
 75 
 76         /// <summary>
 77         /// Gets or sets a value that indicates whether a server control is rendered as UI on the page.
 78         /// </summary>
 79         public override bool Visible
 80         {
 81             get { return IsVisible(); }
 82             set { }
 83         }
 84 
 85         /// <summary>
 86         /// Current DateTime
 87         /// </summary>
 88         private DateTime Now = DateTime.Now;
 89 
 90         #endregion
 91 
 92 
 93 
 94         /// <summary>
 95         /// Determines whether this control is visible.
 96         /// </summary>
 97         private bool IsVisible()
 98         {
 99             TimeSpan now = new TimeSpan(Now.Hour, Now.Minute, 0);
100             TimeSpan endTime = EndTime;
101 
102             if (EndTime < StartTime)
103             {
104                 if (EndTime.TotalMinutes == 0)
105                     endTime = new TimeSpan(1, 0, 0, 0);
106                 else
107                     endTime = new TimeSpan(1, EndTime.Hours, EndTime.Minutes, 0);
108             }
109             return now >= StartTime && now < endTime;
110         }
111     }
112 }
Вернуться к списку исходников в категории Общие вопросы программирования на ASP.NET
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта