This article demonstrates how to add static items and
data-bound items to a
DropDownList control. The sample in this article populates a
DropDownList control with an initial item.
Requirements
The
following list outlines the recommended hardware, software, network
infrastructure, and service packs that you need:
- Microsoft Windows 2000 Professional, Microsoft Windows 2000
Server, Microsoft Windows 2000 Advanced Server, or Microsoft Windows
XP
- Microsoft .NET Framework
- Microsoft Visual Studio .NET
- Microsoft Internet Information Services (IIS)
- Microsoft SQL Server
Create an ASP.NET Web application by using Visual Basic .NET
In the following steps, you create a new ASP.NET Web application
that is named DDLSample.
- Open Microsoft Visual Studio .NET.
- On the File menu, point to
New, and then click Project.
- In the New Project dialog box, click
Visual Basic Projects under Project Types,
and then click ASP.NET Web Application under
Templates.
- In the Location box, replace
WebApplication1 in the default URL with
DDLSample. If you are using the local server, you can
leave the server name as http://localhost so that the
Location box displays
http://localhost/DDLSample.
Create the sample
In the following steps, you create an .aspx page that contains a
DropDownList Web server control. The
DropDownList control is data bound to columns of the Authors table from the
SQL Server Pubs database.
- Follow these steps to add a Web Form to the project:
- Right-click the project node in Solution Explorer,
click Add, and then click Add Web
Form.
- Name the .aspx page DropDown.aspx, and then click
Open.
- Make sure that the page is open in Design view in the
editor. Add a DropDownList control to the page. In the Properties pane, change the
ID of the control to
AuthorList.
- Add a Label control to the page after the DropDownList control. In the Properties pane, change the ID
of the control to CurrentItem.
- Add a Button control to the page after the Label control. In the Properties pane, change the ID
of the control to GetItem, and then change the
Text property to Get Item.
- Right-click the page, and then click View
Code. This opens the code-behind class file in the editor.
- Add the System.Data.SqlClient namespace to the code-behind class file as follows so that the
sample code functions properly.
Imports System.Data.SqlClient
- Add the following code to the Page_Load event.
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim myConn As SqlConnection = New SqlConnection("Server=localhost;" & _
"Database=Pubs;Integrated Security=SSPI")
Dim myCmd As SqlCommand = New SqlCommand("SELECT au_id," & _
"au_lname FROM Authors", myConn)
myConn.Open()
Dim myReader As SqlDataReader = myCmd.ExecuteReader()
'Set up the data binding.
AuthorList.DataSource = myReader
AuthorList.DataTextField = "au_lname"
AuthorList.DataValueField = "au_id"
AuthorList.DataBind()
'Close the connection.
myConn.Close()
myReader.Close()
'Add the item at the first position.
AuthorList.Items.Insert(0, "<-- Select -->")
End If
End Sub
To use Integrated Security in the connect string, change the Web.config
file for the application and set the impersonate attribute of the identity
configuration element to true, as shown in the following example. <configuration>
<system.web>
<identity impersonate="true" />
</system.web>
</configuration>
For more information about ASP.NET Impersonation, visit the following
Microsoft Developer Network (MSDN) Web site: - Modify the connection string as appropriate for your
environment.
- Switch to the Design view in the editor for the .aspx page.
Double-click GetItem. Add the following code to the GetItem_Click event in the code-behind class file.
Private Sub GetItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles GetItem.Click
Dim itemText As String = AuthorList.SelectedItem.Text
Dim itemValue As String = AuthorList.SelectedItem.Value
CurrentItem.Text = String.Format("Selected Text is {0}," & _
"and Value is {1}", itemText, itemValue)
End Sub
- On the File menu, click Save
All to save the Web Form and other associated project
files.
- On the Build menu in the Visual Studio
.NET IDE, click Build to build the project.
- In Solution Explorer, right-click the .aspx page, and then
click View In Browser. Notice that the page opens in the
browser and that the drop-down list box is populated with the initial data.
- Click an item in the drop-down list box. Notice that the
CurrentItem Label control displays the item
that you selected. Additionally, notice that the list retains the current
position and the static entry.
Troubleshooting
- You must place the code to add the static item to the ListItem collection of the control after the data binding code. If you do
not add the code in this order, the list is re-created with the data binding
code, which overwrites the static entry.
- The sample code checks the IsPostBack property to prevent the list from being re-created. In addition,
this code checks IsPostBack to retain the selected item in the current position of the list
between round trips to the server.