Опубликован: 20.09.2008 | Уровень: для всех | Доступ: платный
Лекция 5:

Создание и редактирование страниц

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >

Элементы управления ListBox

Похожи на элементы управления DropDownList, но отображают свои элементы в статичном, а не в выпадающем списке. Вот как создается элемент управления ListBox с перечнем семи базовых цветов, а выбор пользователя отображается на Web- странице:

<asp: ListBox ID="ColorList" runat="server" Rows="7" >
    <asp:ListItem Text="Красный"></asp:ListItem>
    <asp:ListItem Text="Оранжевый"></asp:ListItem>
    <asp:ListItem Text="Желтый"></asp:ListItem>
    <asp:ListItem Text="Зеленый"></asp:ListItem>
    <asp:ListItem Text="Голубой"></asp:ListItem>
    <asp:ListItem Text="Синий"></asp:ListItem>
    <asp:ListItem Text="Фиолетовый"></asp:ListItem>
</asp: ListBox>
<asp:Button ID="Select_Color" runat="server" OnClick="Select_Color_Click"  Text="Выбери цвет" />
<asp:TextBox ID="Color" runat="server"></asp:TextBox>

    protected void Select_Color_Click(object sender, EventArgs e)
    {
        Color.Text = ColorList.SelectedItem.Text;
    }

По умолчанию размеры ListBox устанавливаются так, что одновременно видны только 4 пункта списка. Атрибут Rows в показанном выше тэге <asp:ListBox> увеличивает высоту списка до 7 элементов.

Единственным функциональным различием между ListBox и DropDownList является поддержка множественного выбора первым из них. Атрибут SelectionMode="Multiple" в тэге элемента управления создает ListBox с множественным выбором:

<asp:ListBox ID="ColorList" runat="server" Rows="7" SelectionMode="Multiple">

К сожалению, в классе ListBox нет открытого метода или свойства для получения индексов элементов, выбранных в списке с множественным выбором. Чтобы определить, какие элементы были выбраны, вам придется перебрать все элементы списка по одному, проверяя значение свойства Selected. Следующий метод принимает ссылку на ListBox как входной параметр и возвращает массив целых чисел, содержащий индексы всех выбранных элементов, начиная с нуля;

int[] GetSelectedlndices(ListBox lb)
  {
  ArrayList a = new ArrayList();
  for (int i=0; i<lb.Items.Count; i++)
      {
      if (lb.Items[i].Selected)
        a.Add(i);
      }
  int [] indices = new int[a.Count];
  a.CopyTo (indices);
  return indices;
  }

Используя показанный выше метод GetSelectedlndices, оператор:

int[ ] indices = GetSelectedlndices(ColorList) ;

определяет полный список элементов, отобранных в списке с множественным выбором "ColorList".

Элементы управления CheckBoxList

Создают массивы флажков. Следующий оператор отображает 4 флажка, расположенные по вертикали:

<asp:CheckBoxList ID="Auto_List" runat="server">
<asp:ListItem Text="Волга"></asp:ListItem>
<asp:ListItem Text="Жигули"></asp:ListItem>
<asp:ListItem Text="Москвич"></asp:ListItem>
<asp:ListItem Text="Запорожец"></asp:ListItem>
</asp:CheckBoxList>

Чтобы в серверном сценарии определить, установлен ли данный флажок, обратитесь к значению его свойства Selected:

if (Auto_List.Items[2].Selected)
{
// Флажок установлен.
}
else
{
// Флажок сброшен.
}

Элементы управления RadioButtonList

Элемент управления RadioButtonList упрощает создание групп переключателей и определение выбранного переключателя. Операторы:

<asp:RadioButtonList ID="Auto_List" runat="server">
       <asp:ListItem Text="Волга" Selected="True"></asp:ListItem>
       <asp:ListItem Text="Жигули"></asp:ListItem>
       <asp:ListItem Text="Москвич"></asp:ListItem>
       <asp:ListItem Text="Запорожец"></asp:ListItem>
   </asp:RadioButtonList >

создают столбец переключателей и включают первый из них. Чтобы определить, какой переключатель выбран пользователем, серверный сценарий может применить RadioButtonList, Selectedlndex.

int index = Auto_List.SelectedIndex;
< Лекция 4 || Лекция 5: 12345 || Лекция 6 >
Анна Цуканова
Анна Цуканова
Россия, Москва
Чуадум Шапда
Чуадум Шапда
Россия, Санкт Петербург