使用户能够从单项选择下拉列表中进行选择。下拉列表可以包含任意数目的项。
<asp:DropDownList ????AccessKey="string" ????AppendDataBoundItems="True|False" ????AutoPostBack="True|False" ????BackColor="color name|#dddddd" ????BorderColor="color name|#dddddd" ????BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge| Inset|Outset" ????BorderWidth="size" ????CausesValidation="True|False" ????CssClass="string" ????DataMember="string" ????DataSource="string" ????DataSourceID="string" ????DataTextField="string" ????DataTextFormatString="string" ????DataValueField="string" ????Enabled="True|False" ????EnableTheming="True|False" ????EnableViewState="True|False" ????Font-Bold="True|False" ????Font-Italic="True|False" ????Font-Names="string" ????Font-Overline="True|False" ????Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium| Large|X-Large|XX-Large" ????Font-Strikeout="True|False" ????Font-Underline="True|False" ????ForeColor="color name|#dddddd" ????Height="size" ????ID="string" ????OnDataBinding="DataBinding event handler" ????OnDataBound="DataBound event handler" ????OnDisposed="Disposed event handler" ????OnInit="Init event handler" ????OnLoad="Load event handler" ????OnPreRender="PreRender event handler" ????OnSelectedIndexChanged="SelectedIndexChanged event handler" ????OnTextChanged="TextChanged event handler" ????OnUnload="Unload event handler" ????runat="server" ????SelectedIndex="integer" ????SelectedValue="string" ????SkinID="string" ????Style="string" ????TabIndex="integer" ????ToolTip="string" ????ValidationGroup="string" ????Visible="True|False" ????Width="size" > ????????????<asp:ListItem ????????????????Enabled="True|False" ????????????????Selected="True|False" ????????????????Text="string" ????????????????Value="string" ????????????/> </asp:DropDownList> |
备注
使用
若要指定在 DropDownList 控件中显示的项,请为每个项在 DropDownList 控件的开始标记与结束标记之间放置一个
DropDownList 控件还支持数据绑定。若要将控件绑定到数据源,请首先创建数据源(如
使用
有关 DropDownList Web 服务器控件的属性和事件的详细信息,请参见 DropDownList 文档。
示例
下面的代码示例演示如何创建包含四个项的 DropDownList 控件。
Visual Basic? | ![]() |
---|---|
<%@ Page Language="VB" AutoEventWireup="True" %> <html> <script runat="server" > Sub Selection_Change(sender As Object, e As EventArgs) ' Set the background color for days in the Calendar control ' based on the value selected by the user from the ' DropDownList control. Calendar1.DayStyle.BackColor = _ System.Drawing.Color.FromName(ColorList.SelectedItem.Value) End Sub </script> <body> <form runat="server"> <h3> DropDownList Example </h3> Select a background color for days in the calendar. <br><br> <asp:Calendar id="Calendar1" ShowGridLines="True" ShowTitle="True" runat="server"/> <br><br> <table cellpadding="5"> <tr> <td> Background color: </td> </tr> <tr> <td> <asp:DropDownList id="ColorList" AutoPostBack="True" OnSelectedIndexChanged="Selection_Change" runat="server"> <asp:ListItem Selected="True" Value="White"> White </asp:ListItem> <asp:ListItem Value="Silver"> Silver </asp:ListItem> <asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem> <asp:ListItem Value="Khaki"> Khaki </asp:ListItem> <asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem> </asp:DropDownList> </td> </tr> </form> </body> </html> |
C#? | ![]() |
---|---|
<%@ Page Language="C#" AutoEventWireup="True" %> <html> <script runat="server" > void Selection_Change(Object sender, EventArgs e) { // Set the background color for days in the Calendar control // based on the value selected by the user from the // DropDownList control. Calendar1.DayStyle.BackColor = System.Drawing.Color.FromName(ColorList.SelectedItem.Value); } </script> <body> <form runat="server"> <h3> DropDownList Example </h3> Select a background color for days in the calendar. <br><br> <asp:Calendar id="Calendar1" ShowGridLines="True" ShowTitle="True" runat="server"/> <br><br> <table cellpadding="5"> <tr> <td> Background color: </td> </tr> <tr> <td> <asp:DropDownList id="ColorList" AutoPostBack="True" OnSelectedIndexChanged="Selection_Change" runat="server"> <asp:ListItem Selected="True" Value="White"> White </asp:ListItem> <asp:ListItem Value="Silver"> Silver </asp:ListItem> <asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem> <asp:ListItem Value="Khaki"> Khaki </asp:ListItem> <asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem> </asp:DropDownList> </td> </tr> </form> </body> </html> |
下面的代码示例演示如何通过声明性数据绑定填充 DropDownList 控件。
Visual Basic? | ![]() |
---|---|
<%@ Page Language="VB"%> <%@ Import Namespace="System.Drawing" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DropDownList Declarative DataBinding Sample</title> <script runat="server"> Sub Selection_Change(ByVal sender As Object, ByVal e As EventArgs) '' Set the background color for days in the Calendar control '' based on the value selected by the user from the '' DropDownList control. Calendar1.DayStyle.BackColor = _ Color.FromName(ColorList.SelectedItem.Value) End Sub </script> </head> <body> <form id="form1" runat="server"> <asp:XmlDataSource ID="Colors" runat="server"> <Data> <Colors> <Color ColorID="White" ColorName="White" /> <Color ColorID="Silver" ColorName="Silver" /> <Color ColorID="DarkGray" ColorName="Dark Gray" /> <Color ColorID="Khaki" ColorName="Khaki" /> <Color ColorID="DarkKhaki" ColorName="Dark Khaki" /> </Colors> </Data> </asp:XmlDataSource> Colors: <asp:DropDownList ID="ColorList" DataSourceID="Colors" DataTextField="ColorName" DataValueField="ColorID" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Selection_Change" /> <p /> <asp:Calendar ID="Calendar1" runat="server" /> </form> </body> </html> |
C#? | ![]() |
---|---|
<%@ Page Language="C#" %> <%@ Import Namespace="System.Drawing" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>DropDownList Declarative DataBinding Sample</title> <script runat="server"> void Selection_Change(Object sender, EventArgs e) { // Set the background color for days in the Calendar control // based on the value selected by the user from the // DropDownList control. Calendar1.DayStyle.BackColor = Color.FromName(ColorList.SelectedItem.Value); } </script> </head> <body> <form id="form1" runat="server"> <asp:XmlDataSource ID="Colors" runat="server"> <Data> <Colors> <Color ColorID="White" ColorName="White" /> <Color ColorID="Silver" ColorName="Silver" /> <Color ColorID="DarkGray" ColorName="Dark Gray" /> <Color ColorID="Khaki" ColorName="Khaki" /> <Color ColorID="DarkKhaki" ColorName="Dark Khaki" /> </Colors> </Data> </asp:XmlDataSource> Colors: <asp:DropDownList ID="ColorList" DataSourceID="Colors" DataTextField="ColorName" DataValueField="ColorID" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Selection_Change" /> <p /> <asp:Calendar ID="Calendar1" runat="server" /> </form> </body> </html> |
下面的代码示例演示如何通过以编程方式实现的数据绑定创建 DropDownList 控件。
Visual Basic? | ![]() |
---|---|
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server" > Sub Selection_Change(sender as Object, e As EventArgs) ' Set the background color for days in the Calendar control ' based on the value selected by the user from the ' DropDownList control. Calendar1.DayStyle.BackColor = _ System.Drawing.Color.FromName(ColorList.SelectedItem.Value) End Sub Sub Page_Load(sender as Object, e As EventArgs) ' Load data for the DropDownList control only once, when the ' page is first loaded. If Not IsPostBack Then ' Specify the data source and field names for the Text ' and Value properties of the items (ListItem objects) ' in the DropDownList control. ColorList.DataSource = CreateDataSource() ColorList.DataTextField = "ColorTextField" ColorList.DataValueField = "ColorValueField" ' Bind the data to the control. ColorList.DataBind() ' Set the default selected item, if desired. ColorList.SelectedIndex = 0 End If End Sub Function CreateDataSource() As ICollection ' Create a table to store data for the DropDownList control. Dim dt As DataTable = New DataTable() ' Define the columns of the table. dt.Columns.Add(new DataColumn("ColorTextField", GetType(String))) dt.Columns.Add(new DataColumn("ColorValueField", GetType(String))) ' Populate the table with sample values. dt.Rows.Add(CreateRow("White", "White", dt)) dt.Rows.Add(CreateRow("Silver", "Silver", dt)) dt.Rows.Add(CreateRow("Dark Gray", "DarkGray", dt)) dt.Rows.Add(CreateRow("Khaki", "Khaki", dt)) dt.Rows.Add(CreateRow("Dark Khaki", "DarkKhaki", dt)) ' Create a DataView from the DataTable to act as the data source ' for the DropDownList control. Dim dv As DataView = New DataView(dt) Return dv End Function Function CreateRow(Text As String, Value As String, dt As DataTable) As DataRow ' Create a DataRow using the DataTable defined in the ' CreateDataSource method. Dim dr As DataRow = dt.NewRow() ' This DataRow contains the ColorTextField and ColorValueField ' fields, as defined in the CreateDataSource method. Set the ' fields with the appropriate value. Remember that column 0 ' is defined as ColorTextField, and column 1 is defined as ' ColorValueField. dr(0) = Text dr(1) = Value Return dr End Function </script> <body> <form runat="server"> <h3> DropDownList Data Binding Example </h3> Select a background color for days in the calendar. <br><br> <asp:Calendar id="Calendar1" ShowGridLines="True" ShowTitle="True" runat="server"/> <br><br> <table cellpadding="5"> <tr> <td> Background color: </td> </tr> <tr> <td> <asp:DropDownList id="ColorList" AutoPostBack="True" OnSelectedIndexChanged="Selection_Change" runat="server"/> </td> </tr> </form> </body> </html> |
C#? | ![]() |
---|---|
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server" > void Selection_Change(Object sender, EventArgs e) { // Set the background color for days in the Calendar control // based on the value selected by the user from the // DropDownList control. Calendar1.DayStyle.BackColor = System.Drawing.Color.FromName(ColorList.SelectedItem.Value); } void Page_Load(Object sender, EventArgs e) { // Load data for the DropDownList control only once, when the // page is first loaded. if(!IsPostBack) { // Specify the data source and field names for the Text // and Value properties of the items (ListItem objects) // in the DropDownList control. ColorList.DataSource = CreateDataSource(); ColorList.DataTextField = "ColorTextField"; ColorList.DataValueField = "ColorValueField"; // Bind the data to the control. ColorList.DataBind(); // Set the default selected item, if desired. ColorList.SelectedIndex = 0; } } ICollection CreateDataSource() { // Create a table to store data for the DropDownList control. DataTable dt = new DataTable(); // Define the columns of the table. dt.Columns.Add(new DataColumn("ColorTextField", typeof(String))); dt.Columns.Add(new DataColumn("ColorValueField", typeof(String))); // Populate the table with sample values. dt.Rows.Add(CreateRow("White", "White", dt)); dt.Rows.Add(CreateRow("Silver", "Silver", dt)); dt.Rows.Add(CreateRow("Dark Gray", "DarkGray", dt)); dt.Rows.Add(CreateRow("Khaki", "Khaki", dt)); dt.Rows.Add(CreateRow("Dark Khaki", "DarkKhaki", dt)); // Create a DataView from the DataTable to act as the data source // for the DropDownList control. DataView dv = new DataView(dt); return dv; } DataRow CreateRow(String Text, String Value, DataTable dt) { // Create a DataRow using the DataTable defined in the // CreateDataSource method. DataRow dr = dt.NewRow(); // This DataRow contains the ColorTextField and ColorValueField // fields, as defined in the CreateDataSource method. Set the // fields with the appropriate value. Remember that column 0 // is defined as ColorTextField, and column 1 is defined as // ColorValueField. dr[0] = Text; dr[1] = Value; return dr; } </script> <body> <form runat="server"> <h3> DropDownList Data Binding Example </h3> Select a background color for days in the calendar. <br><br> <asp:Calendar id="Calendar1" ShowGridLines="True" ShowTitle="True" runat="server"/> <br><br> <table cellpadding="5"> <tr> <td> Background color: </td> </tr> <tr> <td> <asp:DropDownList id="ColorList" AutoPostBack="True" OnSelectedIndexChanged="Selection_Change" runat="server"/> </td> </tr> </form> </body> </html> |
请参见
