Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

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

Отображают элементы в выпадающем списке, напоминающем поле со списком в Windows. Классический пример применения элемента управления DropDownList — отображение списка 50 штатов США на форме ввода адреса. Следующий код со­здает такой список и отображает выбор пользователя на Web-странице:

<html> <body>

<form runat="server">

<asp:DropDownList ID="StateList" RunAt="server">

<asp:Listltem Text="AL" RunAt="server" />

<asp:Listltem Text="AK" RunAt="server" />

<asp:Listltem Text="AR" RunAt="server" />

<asp:Listltem Text="WI" RunAt="server" />

<asp:Listltem Text="WV" RunAt="server" />

<asp:Listltem Text="WY" RunAt="server" />

</asp:DropDownList>

<asp:Button Text="Submit" OnClick="OnSubmit" RunAt="server" />

<br>

<asp:Label ID="Output" RunAt="server" />

</form>

</body> </html>

<script language="C#" runat="server">

void OnSubmit (Object sender, EventArgs e)

{

Output.Text = StateList.SelectedItem.Text;

} </script>

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

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

<html> <body>

<form runat="server">

<asp:ListBox ID="StateList" Rows="10" RunAt="server">

<asp:List!tem Text="Alabama" RunAt="server" />

<asp:List!tem Text="Alaska" RunAt="server" />

<asp:Listltem Text="Arkansas" RunAt="server" />

<asp:Listltem Text="Wisconsin" RunAt="server" />

<asp:Listltem Text="West Virginia" RunAt="server" />

<asp:Listltem Text="Wyoming" RunAt="server" />

</asp:ListBox>

<asp:Button Text="Submit" OnClick="OnSubmit" RunAt="server" /> <br>

<asp:Label ID="Output" RunAt="server" />

</form>

</body> </html>

<script language="C#" runat="server">

void OnSubmit (Object sender, EventArgs e)

{

Output.Text = StateList.Selectedltem.Text;

} </script>

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

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

<asp: ListBox ID="StateLisf” SelectionMode="Multiple" Rows="10" RunAt="server">

К сожалению, в классе 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;}

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

int[] indices = GetSelectedIndices (StateList);

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

Соседние файлы в папке ПвИ