|
Программирование >> Программирование с использованием ajax
7. Запустите приложение и попробуйте пощелкать на кнопках. Выполнение щелчка на кнопке AJAX Post back (Отправка AJAX) будет приводить к обновлению только первой надписи, а на кнопке ASP.NET Postback (Отправка ASP.NET) - к обновлению всей страницы. 0 ияМк5 Рад* Windows imMt Ехрккег 3 25 34 PM r~AJAXPQ >n 3 25 2 3 PM ASP rCT Ро 1мск % Local iNlren*! I ProlecteO UoOetOn 4lOO* - Puc. 22.1. Форма сайта A JAXWebsite Описание полученных результатов Для любой страницы ASP.NET требуется один объект ScriptManager. Этот класс предусматривает загрузку JavaScript-функций для нескольких средств. Его еще также можно использовать и для загрузки своих собственных специальных сценариев. Все доступные свойства этого класса кратко описаны в табл. 22.3. Таблица 22.3. Свойства класса ScriptManager Свойство ScriptManager Описание EnablePageMethods EnablePartialRendering LoadScriptsBeforeUI ScriptMode ScriptPath Scripts Services Указывает, должны ли общедоступные статические методы, определенные в АЗРХ-странице, быть пригодными для вызова из клиентского сценария в качестве методов Web-службы Для включения функции частичной визуализации в UpdatePanel для этого свойство должно быть установлено значение true, которое является значением по умолчанию Определяет позицию, в которой сценарии должны размещаться в возвращаемой HTML-странице. В случае их размещения внутри элемента <head> они будут загружаться перед загрузкой пользовательского интерфейса Указывает, какая версия сценариев должна использоваться - отладочная или рабочая Указывает путь к корневому каталогу, в котором находятся специальные сценарии Содержит коллекцию файлов специальных сценариев, которые должны визуализироваться для клиента Содержит коллекцию ссылок на Web-службы, которые могут вызываться из клиентского сценария Элемент управления UpdatePanel с триггерами L Откройте созданный ранее Web-сайт AJAXWebsite. 2. Добавьте новую Web-форму AJAX по имени UpdatePanelWithTrigger. aspx и сделайте ее стартовой страницей приложения. В состав этого шаблона уже входит элемент управления ScriptManager. 3. Добавьте два элемента управления UpdatePanel. 4. Добавьте в каждый из элементов управления UpdatePanel элементы управления Label и Button. 5. Назначьте обоим элементам управления Button в качестве обработчика событий Click метод OnButtonClick и реализуйте этот метод, как показано ниже: protected void OnButtonClick (object sender, EventArgs e) { Labell.Text = DateTime.Now.ToLongTimeString(); Label2.Text = DateTime.Now.ToLongTimeString(); 6. Запустите приложение. Щелчок на любой из кнопок будет приводить к изменению обоих элементов управления Label (как показано на рис. 22.2). Элементы управления ASP.NET типа Button на странице приводят к созданию клиентом HTML-кнопок типа Submit (Отправка). Button2 отправляет серверу обычный HTTP-запрос POST, а Buttonl - Аах-запрос POST, потому что она находится внутри UpdatePanel и клиентский сценарий присоединяется к ее событию Click. Аах-запрос POST подразумевает использование объекта XmlHttpRequest для отправки запроса серверу. Сервер возвращает только данные, требуемые для обновления пользовательского интерфейса. Эти данные интерпретируются, после чего код JavaScript изменяет HTML-элементы управления внутри UpdatePanel для получения нового пользовательского интерфейса: <form id= forml runat= server > <div> <asp:ScriptManager ID= ScriptManagerl runat= server > </asp:ScriptManager> </div> <asp:UpdatePanel ID= UpdatePanell runat= server > <ContentTemplate> <asp:Label ID= Labell runat= server Text= Label > </asp:Label> <asp:Button ID= Buttonl runat= server Text= AJAX Postback onclick= OnButtonClick /> </ContentTemplate> </asp:UpdatePanel> <asp:Label ID= Label2 runat= server Text= Label > </asp:Label> <asp:Button ID= Button2 runat= server Text= ASP.NET Postback onclick= OnButtonClick /> </form> Ha странице может присутствовать и несколько элементов управления UpdatePanel. Давайте испробуем эту возможность в следующем практическом занятии.
Рис. 22.2. Изменение элементов управления Label после щелчков на кнопках 7. Измените значение свойства UpdateMode обоих элементов управления UpdatePanel с Always на Conditional. 8. Запустите приложение снова. Теперь выполнение щелчка на каждой из кнопок будет приводить к изменению только элемента управления Label, который находится внутри того же элемента UpdatePanel, что и данная кнопка. 9. Выберите первый элемент управления UpdatePanel и щелкните на кнопке с изображением символа троеточия напротив свойства Triggers, чтобы открыть диалоговое окно UpdatePanelTrigger Collection Editor (Редактор коллекции UpdatePanelTrigger), показанное на рис. 22.3. Добавьте триггер AsyncPostback, укажите для свойства ControlID в качестве значения кнопку второго элемента управления UpdatePanel, т.е. Button2, а для свойства EventName - значение Click. 10. Запустите приложение. Теперь выполнение щелчка на кнопке Button2 должно приводить к обновлению содержимого обоих элементов управления UpdatePanel, а на кнопке Buttonl - к обновлению только содержимого первого элемента управления UpdatePanel. w СоИесСюл EdUor AiyncPoitBaci БиПоп2,С1к : piopfrtiM-Со гоИО Button? Controno The trigger s target confiol ID Puc. 22.3. Диалоговое сукно UpdatePanelTrigger Collection Editor
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |