DropDownList in ASP .Net
A DropDownList is also commonly known as combo box. It can contain multiple data members, but
unlike a normal list box the users can choose only one value from this control. Though the functionality
of this DropDownList is much like a Single Row Select List Box, a DropDownList can save a lot of
GUI space as it is rendered on a Single line and is expanded only when the user clicks on the Control.
This DropDownList is provided as a Server Control in ASP .Net
like many other controls. This DropDownList can be used to add data manually or even for dynamic binding with data base.
Declaring a DropDownList in ASP .Net:
A simple declaration for DropDownList can be done as below.
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
The above is a very simple declaration for a DropDownList. If we want to add some items statically it can be added inside the Page as follows.
<asp:DropDownList id="DropDownList1" runat="server">
<asp:ListItem Value="TestData1">TestData1</asp:ListItem>
<asp:ListItem Value="TestData2">TestData2</asp:ListItem>
</asp:DropDownList>
The above data can be added manually inside the ASPX page. Otherwise it can also be added by using the Properties --> Items in Visual Studio .Net. When this Items property is clicked, a button will be displayed. When this button is clicked it will prompt a dialog box, where the data can be entered.
Adding the Data using Data Binding to a DropDownList
in ASP .Net :
Data binding on a control can be
applied from various data sources. The data can come from a database, a .XML
file, an array etc., Adding data from a Data from an Array is dealt nicely
in a sample from the gotdotnet
site. As there is no need to duplicate an already available resource, the
following Para explains how to do Data binding with Database data.
The ADO .Net Data structure which can be supplied as the DataSource to the
dropdownlist in ASP .Net is the DataReader class. This class is available
as SqlDataReader in side the System.Data.SqlClient namespace and as
OleDbDataReader inside the System.Data.OleDb namespace. Any of the above classes
can be used depending on the data source. This article has been written with an
SQL Server 2000 as the back end Database.
The code snippet for pulling out data from a database into a data reader is as
follows.
SqlDataReader ddDR = null;
SqlConnection ddSqlConnection = new SqlConnection("server=(local);database=[dbname];user id=username;password=password;connection reset=false;connection lifetime=5;min pool size=1;max pool size=50;");
SqlCommand ddSqlCommand = new SqlCommand("SELECT * FROM TableName", ddSqlConnection);
ddSqlConnection.Open();
ddDR = ddSqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
The above code will pull the data
from the table and keep it in the SqlDataReader. This can be used as follows to
load the DropDownList in our asp .net application.
DropDownList1.DataSource = ddDR;
DropDownList1.DataTextField = "DisplayValueFieldFromDB";
DropDownList1.DataValueField = "DataValueFieldFromDB";
DropDownList1.DataBind();
The above code will load the DropDownList
with the Display Value as DisplayValueFieldFromDB and Data Value as
DataValueFieldFromDB. The following zip
file contain the code sample for the above.
Reading the Data from a DropDownList in ASP
.Net:
Reading the data from a DropDownList
can be achieved in a very easy manner. The Items collection, which
is a member of the DropDownList class holds all the details about the members.
The values can be retrieved as DropDownList.Items[index]
- replace the index with a number, which can go up
to the maximum number of data members. This will return the value.
If one wants to find the selected
value, then the DropDownList.SelectedItem.Value can be used. The
SelectedItem is a member of the class.
Others:
For removing the items, the function
DropDownList.Remove()
can be used. To delete all the items from the DropDownList in ASP .Net, the DropDownList.Items.Clear()
function can be used.