Сървърни елементиКонтроли DropDownList и ListBox във 2

ASP.NET 2.0 DropDownList и ListBox сървърни контроли, добавящи стойности към списъци от база данни и програмно

Контролите DropDownList (Падащ списък) и ListBox (Списък) са предназначени да дадат на потребителя възможността да избира или списък със стойности, които му се представят. Контролите DropDownList и ListBox са много сходни по отношение на техния набор от свойства и събития (вижте Фигура 4.5.5-1). Те се различават само по представянето на данните и по това, че контролата ListBox може да се използва, за да позволи на потребителя да избира няколко стойности едновременно. Елементът DropDownList е по-често използван, който заема по-малко място на страницата, докато ListBox обикновено се използва за съхраняване на междинен набор от стойности, избрани от потребителя. В този случай до списъка можете да поставите например бутоните Добавяне и Премахване.

dropdownlist

Ориз. 4.5.5-1 Контроли ListBox (отгоре) и DropDownList (отдолу).

За разлика от обсъдените по-рано контроли, контролите DropDownList и ListBox не могат да се използват без допълнителна конфигурация. Като минимум е необходимо да им предоставите списък със стойности, от които потребителят може да избира. Следователно, веднага след добавяне на такъв контрол към страницата в режим на дизайнер, на ваше разположение се появява съветник, който ви позволява да конфигурирате най-необходимите параметри (вижте Фиг. 4.5.5-2). Ако съветникът е бил затворен случайно, можете да го отворите отново, като щракнете върху стрелката в горната дясна част на контролата.

Ориз. 4.5.5-2 Помощник за задаване на падащ списък

С помощта на връзката Избор на източник на данни можете да настроите връзка към базата данни и да изберете в таблицатаили изглед с две колони: стойностите от първата колона ще бъдат показани в падащия списък, а стойностите от втората колона действително ще бъдат предадени, когато потребителят избере стойности в списъка. Например, първата колона може да съдържа името на продукта, а втората колона може да съдържа неговия идентификатор.

Ако използвате връзката Редактиране на елементи, прозорецът ListItem Collection Editor се отваря и ви подканва да дефинирате стойности, които потребителят да избере ръчно. За всеки елемент, добавен към списъка, ще бъдете подканени да дефинирате четири параметъра:

  • Текст - стойността, която ще бъде показана на потребителя;
  • Стойност - стойността, която действително ще бъде предадена от тази контрола на ASP.NET приложението;
  • Enabled – дали тази стойност ще бъде налична;
  • Избрано - дали тази стойност ще бъде избрана по подразбиране.

Ако искате да добавите стойности към списъка програмно, тогава можете да използвате метода Add() на колекцията Items за дадения контрол на страницата на кода за тази цел:

ListBox1.Items.Add( Нов ListItem( "Carbon" , "C"))

ListBox1.Items.Add( New ListItem( "Oxygen", "O"))

Обикновено този код се поставя в събитието Load за страницата. По този начин свойството IsPostBack за страницата проверява дали страницата вече е била отворена за потребителя (за да не добавя набор от стойности отново при всяко отваряне на страницата).

Основното свойство на контролите ListBox и DropDownList е свойството Text. Това свойство ви позволява да получите информация за стойността, която потребителят е избрал (или да конфигурирате такава стойност). В предишни версии на ASP . NET използва свойството SelectedValue за тази цел, което в ASP . NET 2.0 е запазен заосигурете обратна съвместимост. Други важни свойства на този контрол:

  • AutoPostBack (това свойство може да бъде конфигурирано и с помощта на съветника — вижте Фиг. 4.5.5-2) — за това свойство стойността по подразбиране е false , което означава: когато потребителят промени стойността в тази контрола, не изпращайте информация за това на сървъра (но изчакайте, например, докато потребителят щракне върху бутона „Изпращане“ и едва след това прехвърлете стойностите). Има смисъл да зададете това свойство на True само когато няма такива бутони във формуляра и трябва да започнете да обработвате информация веднага след като потребителят избере стойност;
  • CausesValidation - определя дали проверката ще бъде извършена, след като потребителят избере стойност в тази контрола;
  • Елементи - Това свойство ви позволява да върнете колекция от елементи, които са поставени в този списък, за да може потребителят да ги избере. Тази колекция може да се използва за програмно добавяне или премахване на елементи.
  • SelectionMode (за ListBox) - Това свойство ви позволява да определите дали потребителят ще може да избира няколко стойности наведнъж. Стойността му по подразбиране е единична. Ако го зададете на множество, тогава можете да изберете няколко стойности едновременно.
  • ValidationGroup - позволява ви да дефинирате група от елементи, за които стойността ще бъде валидирана след промяна на стойността в тази контрола.

Основното събитие за контролите DropDownList и ListBox е събитието TextChanged (т.е. потребителят е избрал стойност). Веднага обаче отбелязваме, че може да се използва само когато свойството AutoPostBack е зададено на true.