Автор: Builder, Тони Паттон
Хотя ASP.NET предоставляет мощную платформу, разработчикам не следует игнорировать такие зрелые технологии, как JavaScript. В этой статье Тони
Паттон объясняет, как интегрировать JavaScript с элементами управления ASP.NET в веб-разработке.
Хотя платформы веб-разработки обеспечивают гибкость и множество функций, часто хочется или приходится полагаться на существующие технологии для выполнения необходимой задачи. Хорошим примером является ASP.NET, которая предоставляет мощную платформу разработки, но в то же время такие зрелые технологии, как JavaScript. также не следует игнорировать. В этой статье я объясню вам, как подключить код JavaScript к элементам управления ASP.NET.
обычный способ
Обычно, когда веб-приложению требуется всплывающее окно или окно подтверждения или другие функции на стороне клиента, вы создаете необходимые методы JavaScript и вызываете их при необходимости. Например, листинг A содержит окно подтверждения, которое пользователь может использовать для продолжения или отмены отправки формы.
После нажатия кнопки отправки вызывается метод JavaScript submitSubmit. Этот запрос подтверждения позволяет пользователю продолжить отправку формы (выберите «Подтвердить») или отменить ее (выберите «Отмена»).
Приведенный выше код работает так, как и планировалось, но при работе на платформе разработки, такой как ASP.NET, все не так просто.
Варианты замены ASP.NET
ASP.NET поддерживает использование элементов HTML, таких как кнопки ввода и текстовые поля, но существует полный набор элементов управления, которые предоставляют дополнительные функциональные возможности на основе собственной модели разработки ASP.NET.
Присоединить JavaScript к ASP.NET не так просто, как прямой подход HTML/JavaScript. Модель программирования ASP.NET предоставляет методы базового класса страницы для прикрепления блоков скриптов к элементам страницы. Следующие методы можно использовать для прикрепления или интеграции JavaScript на страницу или элемент страницы:
л
RegisterClientScriptBlock: позволяет вашей странице содержать блоки сценариев, клиентские сценарии в объекте страницы <form
рунат=
Он запускается после открывающего тега элемента server>. Блок сценария отправляет выходные данные как объект, поэтому необходимо добавить два тега элемента <script>.
л
RegisterOnSubmitStatement: позволяет назначить блок/метод сценария событию OnSubmit объекта страницы.
л
RegisterStartupScript: позволяет включать блоки скриптов на страницу, аналогично методу RegisterClientScriptBlock. Этот метод находится в объекте страницы <form.
рунат=
Блок скрипта, выполняемый перед закрывающим тегом элемента server>, передает выходные данные как объект, поэтому необходимо добавить два тега элемента <script>.
Каждый метод может принимать два параметра: ключ и сценарий. Ключ — это имя, присвоенное блоку сценария. Значение ключа должно быть уникальным. Благодаря этому уникальному значению ключа несколько экземпляров, управляемых сервером, могут запросить блок сценария. снова запустите сценарий в выходном потоке; второй параметр сценария содержит фактический сценарий, отправленный клиенту, который может быть полным кодом JavaScript или именем метода.
Эти методы можно использовать в реальном коде страницы ASP.NET, будь то VB.NET, C#, J# или любой другой язык. В листинге B показан пример кода ASP.NET, написанного на C#.
Методы JavaScript создаются с помощью строковой переменной, ее значение передается методу RegisterClientScriptBlock в качестве второго аргумента, а фактическое имя метода передается через атрибуты объекта.
Метод Add свойства назначается элементу управления "Кнопка" ASP.NET. Событие JavaScript передается в качестве первого параметра, а имя метода является вторым параметром.
Более того, вы можете заметить использование метода IsStartupScriptRegistered, который позволяет вам подтвердить, был ли скрипт зарегистрирован, прежде чем продолжить его использование. Существует два метода решения этой проблемы:
л
IsStartupScriptRegistered: подтверждает, зарегистрирован ли сценарий запуска клиента в объекте страницы. Его единственным параметром является имя сценария.
л
IsClientScriptBlockRegistered: подтверждает, зарегистрирован ли блок сценария клиента в объекте страницы. Его единственным параметром является имя сценария.
Другой способ решить проблему — использовать метод RegisterOnSubmitStatement класса страницы. Листинг C повторяет функцию листинга B, но разница в том, что метод submitSubmit подключается к событию отправки страницы, а не к событию щелчка. кнопка.
Этот простой пример наглядно иллюстрирует, как включать блоки сценариев JavaScript и сценарии JavaScript в элементы управления на странице ASP.NET. Если вы используете элементы управления ASP.NET, этот подход может помочь вам прикрепить сценарии к этим элементам управления, но вы также можете использовать метод Register. для централизации JavaScript проекта. Вы можете создать файл класса, содержащий сценарии, и использовать их на страницах по мере необходимости. Таким образом, вам нужно управлять сценариями только в одном месте, и их использование на одной или нескольких страницах приложения становится проще.
Сочетание старого и нового. Независимо от того, на какой платформе разработки вы работаете, вы вряд ли откажетесь от использования JavaScript в качестве языка сценариев на стороне клиента. Хотя элементы управления ASP.NET предоставляют большое количество функций, во многих случаях JavaScript необходимо «соединить» с этими элементами управления. К счастью, класс страницы ASP.NET содержит множество методов для интеграции блоков и методов сценария в страницу и ее элементы управления.