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