If it's stupid but works, it isn't stupid.
ASP.NET На стороне клиента
Привязка скрипта к ЭУ
Для привязки скриптов javasсript есть объект client sсript
У кнопки есть свойство OnClientClick

На странице создаем кнопку


В файле кода логики создаем код скрипта и добавляем его к элементу на событие OnClientClick


Либо добавить атрибут в коллекцию атрибутов элемента Attributes


Также client sсript manager предназначен для того, чтобы регистрировать скрипты, и контролировать, какие скрипты мы уже зарегистрировали.

Зарегистрируем скрипт на submit

При каждой попытке отправить форму на сервер (событие submit), какая бы кнопка или какое бы событие это не сгенерировало, должно появляться это предупреждение.

Зарегистрируем скрипт на запуск через RegisterStartupScript

Сообщение будет появляться каждый раз при загрузке страницы.

Зарегистрировать ссылку на скриптовый файл
Add -- New Item -- (вкладка Web) -- Javasсript File

Создадим скрипт


И зарегистрируем скрипт на странице


Работа с клиентскими скриптами
Ajax возможность со стороны клиента вызвать метод на сервере и получить его результат на клиенте без обновления всей страницы.

Реализация обратного вызова Client Callback

Создаем код на странице (скрипт и кнопки)


В файле кода логики нужно реализовать интерфейс ICallbackEventHandler
2 метода
GetCallbackResult - возвращает результат callback функции
RaiseCallbackEvent - вызывает callback функцию



ASP.NET Ajax
Элемент UpdatePanel - заключенная в него часть страницы будет обновлять отдельно от всей страницы

Toolbox -- AJAX Extension -- ScriptManager - элемент, который управляет регистрацией необходимых скриптов на странице

Чтобы обернуть элементы страницы в UpdatePanel, создаем
Toolbox -- AJAX Extension -- UpdatePanel
внутри создаем элемент ContentTemplate


Код на странице


Внутри UpdatePanel также можно создать Triggers

Т.о. элемент с заданным ID может обновлять всю страницу.

Также можно сделать AsyncPostBackTrigger
Также нужно добавить к UpdatePanel свойство ChildrenAsTriggers и UpdateMode
ChildrenAsTriggers="false" говорит о том, что элементы, находящиеся в UpdatePanel не являются триггерами её обновления
UpdateMode="Conditional" указывает, что мы хотим использовать триггеры



Также нужно переписать обработчики


ЭУ UpdateProgress отображается, когда происходят изменения на странице через UpdatePanel


ЭУ Timer вызывает PostBack с регулярным интервалом


И зададим обработчик события



Курсы по asp.net от intuit.ru часть №6

@темы: С#, Курсы по asp.net от intuit.ru часть, ASP.NET, Ссылки