Выделение выпадающего списка серым цветом, динамическая активация при выборе опции

#asp.net #vb.net #drop-down-menu

#asp.net #vb.net #выпадающее меню

Вопрос:

У меня есть три выпадающих списка, которые все загружаются в одну и ту же функцию. Как мне выделить выпадающие списки 2 и 3 серым цветом? Я хочу, чтобы они активировались, если в выпадающем списке 1 сделан определенный выбор.

Комментарии:

1. используете ли вы Ajax Control Toolkit?

2. Не могли бы вы опубликовать пример кода того, как выглядит ваш выпадающий код сейчас? Это значительно упростит предоставление понятного вам решения.

Ответ №1:

Если вы используете AJAX ControlKit, вы можете использовать каскадные выпадающие списки:

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

Если нет, вы можете добавить обработчик событий для каждого выпадающего списка OnSelectedIndexChanged, а затем выполнить свою логику при обратной передаче. (установите текстовое поле 1 и 2 do .Включить = ложная загрузка)

 if(Textbox1.Text == "hello world"){
Textbox2.enabled = true;
}
  

Или вы можете использовать javascript, чтобы сделать это на стороне клиента следующим образом: поэтому отключите обратную передачу для выпадающего списка, используйте хук OnClient javascript и реализуйте включение / отключение в javascript.

 function checkDrop(DropDown)
{
  ...check logic disable Dropdown etc
  document.getElementById(DropDown).disabled = true;
}
  

Ответ №2:

Если я понял ваш вопрос. Сделайте AutoPostBack="True" на своем первом dropdownlist . Затем в

 protected void DropdownlistSelectedIndexChanged(object sender, EventArgs e)
{  
       //get the selected item
       var item = Dropdownlist.SelectedItem.ToString();
       // depending on the item you can grey the other dropdowns
}
  

Ответ №3:

В VB.Net:

    myDD.BackColor = System.Drawing.Color.FromArgb(235, 235, 228)