Использование Javascript с элементами управления ASP.Net

Есть ли лучший способ настройки событий onclick на стороне клиента при использовании элементов управления ASP.Net? Простое добавление атрибута onclick приводит к предупреждению Visual Studio о том, что onclick не является допустимым атрибутом этого элемента управления. Добавление его во время события Page_Load через codebehind работает, но менее понятно, чем хотелось бы.

Это единственные два варианта? Есть ли правильный способ сделать это, что мне не хватает?

Спасибо! Эрик Сиппл

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 657
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Можно установить значение WebControl.Attributes["onclick"]. Если ASP.NET требуется обработчик click на стороне клиента, он объединит значения, разделенные точкой с запятой.

Ответ принят как подходящий

**просто замечание к ответу: проверка HTML в VS часто бывает BS. Он жалуется на вещи, которые работают в реале, даже если это плохая практика. Но иногда приходится нарушать правила, чтобы добиться желаемого.

Каждая страница ASP.NET (версии 2.0 и выше) поставляется с ClientScriptManager. Вы используете это для регистрации javascript из кода на стороне сервера. Вы можете передать javascript, который регистрирует события в элементах управления после загрузки страницы, когда все элементы управления HTML на странице присутствуют в DOM.

Он представляет собой единое единое место на страницах для динамического добавления javascript, что неплохо. Однако это ужасно некрасиво.

В это время смерти модели управления сервером ASP.NET вы можете захотеть установить события так, как они будут в будущем ASP.NET MVC. Возьмите копию jQuery и добавьте ее на свой сайт. Затем вы можете легко зарегистрировать свои мероприятия следующим образом:

  <html>
  <head>
    <script type = "text/javascript" src = "jquery.js"></script>
    <script type = "text/javascript">
      $(document).ready(function(){
        $("controlId").bind("click", function(e) { /* do your best here! */ });
      });
    </script>
  </head>
  <!-- etc -->
  </html>

Вы можете добавлять события через Javascript к нужным HTML-элементам. Это самый чистый способ, поскольку он не смешивает серверные и клиентские технологии. Более того, таким образом, многие обработчики могут быть зарегистрированы для одного и того же события (в отличие от атрибута onclick).

По сути, код будет

document.getElementById('myLovelyButtonId').attachEvent('onclick',doSomething)

для Internet Explorer и

document.getElementById('myLovelyButtonId').addEventListener('click',doSomething,false)

для других браузеров. (doSomething - это обработчик событий - функция JavaScript). Эти вызовы должны выполняться в обработчике событий оконная нагрузка.

Прочтите статья о расширенной регистрации событий в Quirksmode для получения дополнительной информации.

Также рассмотрите возможность использования такой библиотеки, как jQuery. Таким образом, заявление станет

$('#myLovelyButtonId').click(
    function doSomething () {
        alert('my lovely code here');
    });

Исправляйте грамматические или орфографические ошибки.

Уточняйте смысл, не меняя его.

Исправляйте мелкие ошибки.

Добавьте связанные ресурсы или ссылки.

Всегда уважайте первоначального автора.

Другие вопросы по теме