![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Calendar
Этот класс не имеет аналогов в HTML. Определив единственный элемент управления, можно создать и предоставить в распоряжение посетителей полноценный календарь, где они смогут прокручивать месяцы, выбирать день или неделю. Внешний вид этого элемента управления может быть самым разнообразным. И все это реализуется средствами HTML. Раньше это было возможно только с помощью ActiveX — контролов, которые нужно загружать с сервера, регистрировать в системе и проверять на безопасность. Calendar имеет множество свойств.
Calendar поддерживает различные календарные системы — не только привычный григорианский, но и юлианский, иудейский, мусульманский, буддистский. Это можно сделать, изменяя культурную информацию страницы. Выбор клиентом даты начала путешествия на сайте туристического агентства: < %@ Page Language=" C#" %> < script runat=" server" > void Page_Load(Object sender, EventArgs e) { if (Page.IsPostBack) { TextToUser.Text = " Вы поедете " + calVoyage.SelectedDate.ToLongDateString(); } } void calSelectChange(Object sender, EventArgs e) { if (calVoyage.SelectedDate > DateTime.Today) { TextToUser.Text = " Вы действительно хотите отпра-виться в путешествие " +calVoyage.SelectedDate.ToShortDateString() + "? "; Button ok = new Button(); ok.Width = 100; ok.Text = " Да"; form1.Controls.Add(ok); } else TextToUser.Text=" Выберите будущую дату"; } < /script> < html xmlns=" https://www.w3.org/1999/xhtml" > < head> < title> Пример календаря< /title> < /head> < body> < form runat=" server" id=" form1" > < asp: Calendar ID=" calVoyage" runat=" server" BackColor=" lightgreen" CellPadding=" 3" CellSpacing=" 3" NextPrevFormat=" FullMonth" SelectionMode=" DayWeekMonth " OnSelectionChanged=" calSelectChange" /> < asp: Label ID=" TextToUser" runat=" server" Font-Bold=" True" Font-Underline=" False" /> < br> < /form> < /body> < /html>Если мы посмотрим на HTML-код страницы, которая сгенерирована этой программой, то увидим довольно объемный текст, в том числе функцию на JavaScript и большую таблицу, каждая ячейка которой ссылается на эту функцию. Было бы непросто написать все это самим. Свойства SelectMonthText и SelectWeekText задают символы HTML, по умолчанию & gt; и & gt; & gt; эта последовательность отображается в символы >. С событием выбора даты OnSelectionChanged связан обработчик calSelectChange. В нем мы сначала проверяем, является ли выбранная дата будущей по отношению к сегодняшнему дню. Если да, то создается новая кнопка для подтвержения выбранной даты. Такая строка в Page_Load — this.Culture=new CultureInfo(" th-TH").ToString();сделает календарь таким, какой принят в Таиланде. Не забудьте включить пространство имен глобализации: %@Import Namespace= " System.Globalization" %Свойство SelectionMode, равное DayWeekMonth, позволяет выбрать как конкретный день, так и неделю или месяц. Как же получить выбранный диапазон дат? SelectedDate возвращает только первый день диапазона. Для этого существует коллекция Calendar1.SelectedDates: TextToUser.Text = " Вы пробудете в путешествии "; for (int i = 0; i < calVoyage.SelectedDates.Count; i++) { TextToUser.Text += calVoyage.SelectedDates[i].ToShortDateString() + " < br> "; }А еще элегантнее будет написать так: foreach (DateTime i in calVoyage.SelectedDates) { TextToUser.Text += i.ToShortDateString() + " < br> "; }Можно запретить пользователю выбирать прошлую дату. Для этого можно воспользоваться свойством IsSelectable: if (e.Day.Date < DateTime.Now) {e.Day.IsSelectable = false; }
|