Пошаговое руководство. Общие сведения об элементе управления Timer
Обновлен: Ноябрь 2007
В этом пошаговом руководстве описано обновление части веб-страницы через заданный промежуток времени с помощью трех серверных элементов управления ASP.NET AJAX: ScriptManager, UpdatePanel и Timer. Добавление этих элементов управления на страницу избавляет от необходимости обновлять страницу целиком при каждой обратной передаче. Обновляется только содержимое элемента управления UpdatePanel.
Дополнительные сведения о частичном выводе страницы для просмотра см. в разделе Общие сведения о частичной отрисовке страниц.
Обязательные компоненты
Для реализации процедур, описанных в данном руководстве, необходимо:
Microsoft Visual Studio 2005 или Visual Web Developer, экспресс-выпуск;
веб-узел ASP.NET с поддержкой AJAX.
Чтобы обновлять элемент управления UpdatePanel с определенным интервалом, выполните описанные ниже действия.
С помощью продукта Microsoft Visual Studio 2005 или Visual Web Developer, экспресс-выпуск создайте новую страницу ASP.NET с поддержкой технологии AJAX и перейдите в представление конструирования.
Если на странице отсутствует элемент управления ScriptManager, добавьте его, дважды щелкнув элемент управления ScriptManager на вкладке AJAX-расширения панели элементов.
В панели элементов дважды щелкните элемент управления UpdatePanel, чтобы добавить его на страницу.
Щелкните внутри элемента управления UpdatePanel, а затем щелкните элемент управления Timer, чтобы добавить его к элементу управления UpdatePanel.
Примечание. Элемент управления Timer может работать как триггер внутри или вне элемента управления UpdatePanel. В этом примере показано использование Timer внутри элемента управления UpdatePanel. Пример использования элемента управления Timer в качестве триггера вне элемента управления UpdatePanel см. в разделе Пошаговое руководство. Использование элемента управления ASP.NET Timer с несколькими элементами управления UpdatePanel.
Присвойте свойству Interval элемента управления Timer значение 10000.
Свойство Interval определено в миллисекундах, поэтому если присвоить свойству Interval значение 10 000 миллисекунд, элемент управления UpdatePanel будет обновляться через каждые 10 секунд.
Примечание. В этом примере для интервала таймера задано значение 10 секунд. Это сделано для того, чтобы при запуске примера не пришлось долго ждать результатов. Однако каждый интервал таймера вызывает обратную передачу на сервер и увеличивает сетевой трафик. Поэтому в реальном приложении необходимо задавать наибольший интервал времени, приемлемый для приложения.
Щелкните внутри элемента управления UpdatePanel. Затем на вкладке Стандартные панели элементов дважды щелкните элемент Label, чтобы добавить его к элементу управления UpdatePanel.
Примечание. Убедитесь, что элемент управления Label размещается внутри элемента UpdatePanel.
Присвойте свойству Text метки значение Панель еще не обновлена.
Щелкните за пределами элемента управления UpdatePanel, а затем дважды щелкните элемент управления Label, чтобы добавить вторую метку вне элемента управления UpdatePanel.
Примечание. Убедитесь, что второй элемент управления Label находится за пределами элемента управления UpdatePanel.
Дважды щелкните элемент управления Timer, чтобы создать обработчик событий Tick.
Добавьте код, который присваивает свойству Text элемента управления Label1 текущее время.
Создайте обработчик событий Page_Load и добавьте код, который присваивает свойству Text элемента управления Label2 время создания страницы.
Перейдите в представление источника данных.
Убедитесь, что разметка страницы похожа на приведенную ниже:
Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label2.Text = "Page created at: " & _ DateTime.Now.ToLongTimeString() End Sub Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = "Panel refreshed at: " & _ DateTime.Now.ToLongTimeString() End Sub End Class
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label2.Text = "Page created at: " + DateTime.Now.ToLongTimeString(); } protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString(); } }
Сохраните изменения и нажмите клавиши CTRL+F5 для просмотра страницы в обозревателе.
Подождите не менее 10 секунд, пока обновится панель.
Текст в панели изменится, — отобразится последнее время обновления содержимого панели. Однако текст за пределами панели останется неизменным.
Резюме
В этом пошаговом руководстве описаны основные концепции частичного обновления страниц с помощью элементов управления Timer и UpdatePanel. На страницу, которая содержит элемент управления UpdatePanel или Timer, необходимо добавить элемент управления ScriptManager. По умолчанию наличие элемента управления Timer в панели приведет к тому, что при асинхронной обратной передаче будет обновляться только панель. Наличие элемента управления Timer за пределами панели может привести к обновлению элемента управления UpdatePanel, если он настроен как триггер панели.
На следующем этапе читатель научится применять элемент управления Timer вне элемента управления UpdatePanel, а также обновлять с помощью таймера несколько элементов управления UpdatePanel. Сведения об этих задачах см. в разделе Пошаговое руководство. Использование элемента управления ASP.NET Timer с несколькими элементами управления UpdatePanel.
См. также
Основные понятия
Общие сведения об элементе управления Timer
Общие сведения о частичной отрисовке страниц