Россия, Москва |
Создание и редактирование страниц
Элементы управления 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;