Самый простой / лучший скрыть / показать на стороне клиента Скрыть / показать для ASP.NET

У меня есть DropDownList и TextBox на странице. Когда пользователь выбирает «другой» вариант в DropDownList, я хочу отобразить текстовое поле справа от него. Я не хочу использовать традиционную технику PostBack. Я хочу, чтобы это взаимодействие было на стороне клиента.

Я знаю, что могу получить ссылку на элемент DOM и установить для него стиль «display: none» или «display:». Я ищу то, что встроено в платформу ASP.NET для обработки чего-то вроде этого. То есть в jQuery это так же просто, как $('controlID').hide. Есть ли Control Extender, который может это сделать? Является ли jQuery частью платформы ASP.NET?

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
3 421
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

jQuery будет / распространяется с VisualStudio / ASP.NET MVC, хотя я бы не стал называть это частью фреймворка. Я думаю, что вы можете свободно использовать его и верить, что он будет поддерживаться.

Обратите внимание, что Microsoft заявила, что они будут использовать основную линию разработки для jQuery, поэтому сам код не будет отличаться от того, который вы можете загрузить с jQuery.com, за исключением, возможно, встроенного Intellisense.

РЕДАКТИРОВАТЬ: Чтобы настроить свою функциональность, загрузите код с jquery.com. Поместите его в папку со скриптами или в другое место, где вы храните файлы javascript. Добавьте ссылку на скрипт на свою страницу. Используйте jquery, чтобы добавить обработчик onchange в раскрывающийся список, и когда значение раскрывающегося списка другое, отобразите текстовое поле, в противном случае скройте его. В приведенном ниже примере предполагается, что other не выбран по умолчанию. Если вы используете элементы управления runat = "server" с MasterPages или внутри UserControls, вам необходимо настроить имена в функциях javascript, чтобы учесть искажение имен, которое выполняет ASP.NET. Вероятно, проще дать им уникальные классы CSS и ссылаться на них, используя нотацию «.class», а не нотацию «#id».

<script type = "text/javascript" src = "...pathtoscript../jquery.1.2.6.js"></script>
<script type = "text/javascript">
   $(document).ready( function() {
       $("#DropDownListID").bind('change', function() {
           if (this.options[this.selectedIndex].value == 'other')
           {
               $("#TextBoxID").show();
           }
           else
           {
               $("#TextBoxID").hide();
           }
       });
   });
</script>

  ...

 <select id = "DropDownList">
     <option value='first'>First</option>
      ...
     <option value='other'>Other</option>
 </select>
 <input type='text' id='TextBox' style='display: none;' />

Что нужно сделать, чтобы получить функциональность jQuery? На данный момент меня не волнует intellisense.

dtrick 31.12.2008 05:36

Спасибо за исчерпывающий ответ. Я надеялся, что jQuery будет работать без необходимости вручную брать фреймворк и ссылаться на него. Возможно, это выйдет в будущем выпуске.

dtrick 31.12.2008 22:16

Вы также можете использовать клиентскую платформу asp.net (через диспетчер сценариев), чтобы получить ссылку на элемент. Но тогда вам все равно придется использовать обычные манипуляции с DOM.

$get('<%= myDropDown.ClientID %>').style.display = 'none';

Просто убедитесь, что у вас есть ссылка на диспетчер сценариев.

Для чего-то такого простого, я бы не подумал, что стоит ссылаться на jquery, но, возможно, у вас есть большие планы ;-)

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