ASP Page Data Binding by Dmitry Pavlov. ASP Page Data Binding Data Binding – механизм для связывания данных с элементами управления, которые эти данные.

Презентация:



Advertisements
Похожие презентации
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
Advertisements

Тренинг «Разработка веб-приложений на ASP.NET» Занятие 2 Страницы и элементы управления Гайдар Магдануров
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Microsoft TechDays Александр Шер Разработчик ООО «Айко»
Delphi. 11 класс.. Познакомиться с понятиями : Инкапсуляция Интерфейс объекта Классы, экземпляр класса Наследование, иерархия полиморфизм.
Разработки на базе WEB- технологий. Подходы и решения ОАО «Конструкторское бюро системного программирования», г. Гомель, Беларусь.
Введение. Цели и задачи. Основные понятия и определения. Требования к базам данных.
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
1 © Luxoft Training 2012 Введение в ООП Модуль #2.
Интерфейс текстового процессора Microsoft Word. С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Веб-технологии и современные средства разработки УЦ ВГТУ & SoftLine Academy.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Михаил Черномордиков Developer Evangelist, Microsoft Россия
AJAX Выполнила: студентка группы ПИ-311 Газизова Влада.
Полиморфизм. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Основы создания многостраничного Web-узла Создание многостраничного сайта предполагает разработку его структуры (списка разделов и подразделов) и системы.
Транксрипт:

ASP Page Data Binding by Dmitry Pavlov

ASP Page Data Binding Data Binding – механизм для связывания данных с элементами управления, которые эти данные отображают. Элементами управления пользовательским интерфейсом являются все классы, унаследованные непосредственно от класса System.Web.UI.Control или от его потомков. В MSDN все эти классы имеют примерно такое описание для метода DataBind:

ASP Page Data Binding Иерархия наследников класса System.Web.UI.Control Все производные классы (за исключением классов, помеченных *) наследуют реализацию метода DataBind определенную в базовом классе без изменений: * - метод DataBind() переопределен

ASP Page Data Binding Repeater, BaseDataList (родитель для классов DataGird и DatList) В этих классах DataBind переопределен следующим образом:

ASP Page Data Binding Как мы видим, ВСЕ наследники System.Web.UI.Control связываются с данными по единой схеме – вызов DataBind для родителя будет означать также вызов этого метода для ВСЕХ дочерних контролов. Эту схему удобно использовать для управления данными в жизненном цикле страниц и контролов:

ASP Page Data Binding Поскольку мы знаем, что вызов DataBind() для страницы, повлечет за собой вызовы DataBind() для всех дочерних контролов (как «обычных», так и реализованных нами), мы может сосредоточить основную логику работы всех страниц приложения в базовом классе. Это позволит не тратить массу усилий и времени на то, чтобы разобраться, что делает очередной метод «bindMyControlIfAllOk(true)» и как расставить if-ы, чтобы заставить «этого монстра» работать. Достаточно определить в базовом классе набор удобных виртуальных методов и последовательность их возовов. А затем переопределять их в классах страниц.

ASP Page Data Binding Например можно реализовать базовый класс следующим образом:

ASP Page Data Binding ВСЕ ЗДОРОВО И СРАЗУ?.. ТАКОГО НЕ БЫВАЕТ!!!

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Переход должен происходить от «листьев» к «корню» (от контролов к странице). При этом важно помнить о том, когда можно «безопасно» обрабатывать данные:

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Переопределив DataBind важно не забыть вызвать base. DataBind, а также обеспечить чтобы к моменту его вызова все необходимые данные были переданы в контрол сверху и обработаны по ссылке.

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Переопределив DataBind важно не забыть вызвать base. DataBind, а также обеспечить, чтобы его вызов осуществлялся после отработчиков событий (как правило в PreRender- е).

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Когда страница и все контролы переведены на «новую» схему Binding-a, количество вызовов DataBind-а равно 1-му (в PreRender-е) или 2-м (при первой загрузке в PageLoad-e и в PreRender-е)

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Когда все страницы имеют схожую структуру, вынести вызовы DataBind в BasePage класс займет 1 день работы одной пары. Поскольку рассматриваемый подход естественным образом приводит к тому, что установка данных в контролы выделяется в отдельный метод, также около 1 дня потребуется чтобы определить в базовом классе необходимые виртуальные методы (SetDataSource и т.п.) и использовать их в дочерних классах.

ASP Page Data Binding И если в Белорибо еще bindMyControlIfAllOk(), то в Белобаджо уже - DataBind()! Или как мигрировать с наименьшими потерями? Ура! Мы в Белобаджо!!!

ASP Page Data Binding and Validation Использование стандартной схемы для связывания данных: -облегчает написание кода страниц и контролов с нуля -СИЛЬНО облегчает модификацию уже имеющегося GUI кода -позволяет вынести большую часть общей логики в базовые классы -«очищает» GUI код от многочисленных и часто избыточных вызовов методов типа «bindMyControlIfAllOk()» -облегчает чтение и понимание GUI кода -позволяет четко разделить такие блоки как, например, валидация, установка DataSource-ов, разграничение прав доступа и т.п. -значительно упрощает рефакторинг

ASP Page Data Binding Поговорим?