HtmlSelect 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
允许对服务器上的 HTML <select>
元素进行编程访问。
public ref class HtmlSelect : System::Web::UI::HtmlControls::HtmlContainerControl, System::Web::UI::IPostBackDataHandler
[System.Web.UI.ValidationProperty("Value")]
public class HtmlSelect : System.Web.UI.HtmlControls.HtmlContainerControl, System.Web.UI.IPostBackDataHandler
[<System.Web.UI.ValidationProperty("Value")>]
type HtmlSelect = class
inherit HtmlContainerControl
interface IPostBackDataHandler
interface IParserAccessor
Public Class HtmlSelect
Inherits HtmlContainerControl
Implements IPostBackDataHandler
- 继承
- 属性
- 实现
示例
下面的代码示例演示如何通过显式声明控件中显示的项来创建 HtmlSelect 控件。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Button_Click (Object sender, EventArgs e)
{
Label1.Text = "You selected:";
for (int i = 0; i <= Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Label1.Text += "<br /> -" + Select1.Items[i].Text;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlSelect Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
runat="server">
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Button_Click (sender As Object, e As EventArgs)
Dim i As Integer
Label1.Text = "You selected:"
For i = 0 to Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text = Label1.Text & "<br /> -" _
& Select1.Items(i).Text
End If
Next i
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> HtmlSelect Example </title>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlSelect Example </h3>
Select items from the list: <br /><br />
<select id="Select1"
multiple="true"
runat="server">
<option value="1" selected="selected"> Item 1 </option>
<option value="2"> Item 2 </option>
<option value="3"> Item 3 </option>
<option value="4"> Item 4 </option>
<option value="5"> Item 5 </option>
<option value="6"> Item 6 </option>
</select>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
下面的代码示例演示如何通过将控件绑定到数据源来创建 HtmlSelect 控件。
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!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>
<title> HtmlSelect Example </title>
<script runat="server">
void Page_Load (Object sender, EventArgs e)
{
// Bind the HtmlSelect control to a data source when the page is initially loaded.
if (!IsPostBack)
{
// Open a connection to the database and run the query.
// Note that the connection string may vary depending on your
// database server settings.
string ConnectString = "server=localhost;database=pubs;integrated security=SSPI";
string QueryString = "select * from authors";
SqlConnection myConnection = new SqlConnection(ConnectString);
SqlDataAdapter myCommand = new SqlDataAdapter(QueryString, myConnection);
// Create a dataset to store the query results.
DataSet ds = new DataSet();
myCommand.Fill(ds, "Authors");
// Bind the HtmlSelect control to the data source.
Select1.DataSource = ds;
Select1.DataTextField = "au_fname";
Select1.DataValueField = "au_fname";
Select1.DataBind();
}
}
void Button_Click (Object sender, EventArgs e)
{
// Display the selected items.
Label1.Text = "You selected:";
for (int i=0; i<=Select1.Items.Count - 1; i++)
{
if (Select1.Items[i].Selected)
Label1.Text += "<br /> - " + Select1.Items[i].Text;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlSelect Example </h3>
Select items from the list. <br />
Use the Control or Shift key to select multiple items. <br /><br />
<select id="Select1"
multiple="true"
runat="server"/>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!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>
<title> HtmlSelect Example </title>
<script runat="server">
Sub Page_Load (sender As Object, e As EventArgs)
' Bind the HtmlSelect control to a data source when the page is initially loaded.
If Not IsPostBack Then
' Open a connection to the database and run the query.
' Note that the connection string may vary depending on your
' database server settings.
Dim ConnectString As String = "server=localhost;database=pubs;integrated security=SSPI"
Dim QueryString As String = "select * from authors"
Dim myConnection As SqlConnection = New SqlConnection(ConnectString)
Dim myCommand As SqlDataAdapter = New SqlDataAdapter(QueryString, myConnection)
' Create a dataset to store the query results.
Dim ds As DataSet = New DataSet()
myCommand.Fill(ds, "Authors")
' Bind the HtmlSelect control to the data source.
Select1.DataSource = ds
Select1.DataTextField = "au_fname"
Select1.DataValueField = "au_fname"
Select1.DataBind()
End If
End Sub
Sub Button_Click (sender As Object, e As EventArgs)
Dim i As Integer
Label1.Text = "You selected:"
For i = 0 To Select1.Items.Count - 1
If Select1.Items(i).Selected Then
Label1.Text = Label1.Text & "<br /> - " & Select1.Items(i).Text
End If
Next i
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<h3> HtmlSelect Example </h3>
Select items from the list. <br />
Use the Control or Shift key to select multiple items. <br /><br />
<select id="Select1"
multiple="true"
runat="server"/>
<br /><br />
<button id="Button1"
onserverclick="Button_Click"
runat="server">
Submit
</button>
<br /><br />
<asp:Label id="Label1"
runat="server"/>
</form>
</body>
</html>
下面的代码示例演示如何使用 DataSourceID 属性指定控件的 HtmlSelect 数据源。 属性 DataSourceID 设置为 ID 用于检索数据的控件的 SqlDataSource 属性。 加载页面时,控件 HtmlSelect 会自动绑定到控件指定的 SqlDataSource 数据源,并将数据显示给用户。
<%@ page language="C#" %>
<!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 id="Head1" runat="server">
<title>HtmlSelect.DataSourceID</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<h3> HtmlSelect.DataSourceID Example </h3>
<p>Select an item from the list</p>
<select id="Select1"
name="Select1"
datasourceid="SqlDataSource1"
datatextfield="ProductName"
runat="server">
</select>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
runat="server">
</asp:sqldatasource>
</div>
</form>
</body>
</html>
<%@ page language="VB" %>
<!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 id="Head1" runat="server">
<title>HtmlSelect.DataSourceID</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<h3> HtmlSelect.DataSourceID Example </h3>
<p>Select an item from the list</p>
<select id="Select1"
name="Select1"
datasourceid="SqlDataSource1"
datatextfield="ProductName"
runat="server">
</select>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
runat="server">
</asp:sqldatasource>
</div>
</form>
</body>
</html>
注解
使用 HtmlSelect 控件创建选择框。 通过在开始标记和结束<select>
标记之间放置 HTML <option>
元素,在 控件中指定项列表。 每个项都由 一个 System.Web.UI.WebControls.ListItem 对象表示。 若要指定控件中每个项显示的文本,可以设置 ListItem.Text 项的 属性,或只是在开始标记和结束 <option>
标记之间放置文本。 通过设置 ListItem.Value 项的 属性,可以将值与与文本不同的项相关联。 若要默认从列表中选择某个项,请将该项的 属性设置为 ListItem.Selectedtrue
。
可以通过设置 Size 和 属性来控制HtmlSelect控件的外观和Multiple行为。 属性 Size 指定控件) 行的高度 (。 属性 Multiple 指定是否可以在 控件中 HtmlSelect 同时选择多个项。
默认情况下,控件 HtmlSelect 显示为下拉列表框。 如果通过将 属性设置为 Multipletrue
) 或通过将 属性设置为大于) 的值1
来指定大于一行的高度 ( (Size,则控件将显示为列表框。
若要确定单选控件中的选定 HtmlSelect 项,请使用 SelectedIndex 属性获取选定项的索引。 然后,可以使用此值从集合中 Items 检索项。
若要从允许多个选择的 HtmlSelect 控件中确定选定的项,请循环访问 Items 集合并测试 ListItem.Selected 每个项的 属性。
类 HtmlSelect 提供两个属性来支持数据绑定。 若要将数据绑定到实现 System.Collections.IEnumerable 接口 (的任何对象(如 System.Data.DataView、 System.Collections.ArrayList和 System.Collections.Generic.List<T>) )或 IListSource 接口,请使用 DataSource 属性指定要绑定到的数据源。 设置 DataSource 属性时,必须手动编写代码以执行数据绑定。 若要自动将 HtmlSelect 控件绑定到数据源控件所表示的数据源,请使用 DataSourceID 属性并将其值设置为 ID 要使用的数据源控件的 属性。 设置 DataSourceID 属性时,控件 HtmlSelect 会自动绑定到指定的数据源控件。 因此,不需要显式调用 DataBind 方法。
还可以通过分别设置 DataTextField 和 ListItem.Value 属性,指定数据源中的哪些字段绑定到ListItem.Text控件中项的 和 DataValueField 属性。 如果数据源包含多个数据源,请使用 DataMember 属性指定要绑定到控件的特定源。 例如,如果对象 System.Data.DataSet 具有多个表,则必须使用 DataMember 属性指定要绑定到控件的表。
有关 实例 HtmlSelect的初始属性值的列表, HtmlSelect 请参阅 构造函数。
构造函数
HtmlSelect() |
初始化 HtmlSelect 类的新实例。 |
属性
Adapter |
获取控件的浏览器特定适配器。 (继承自 Control) |
AppRelativeTemplateSourceDirectory |
获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
Attributes |
获取在 ASP.NET 页内的服务器控件标记上表示的所有特性名称和值对的集合。 (继承自 HtmlControl) |
BindingContainer |
获取包含该控件的数据绑定的控件。 (继承自 Control) |
ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
ClientID |
获取由 ASP.NET 生成的 HTML 标记的控件 ID。 (继承自 Control) |
ClientIDMode |
获取或设置用于生成 ClientID 属性值的算法。 (继承自 Control) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
Context |
为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 (继承自 Control) |
Controls |
获取 ControlCollection 对象,该对象表示 UI 层次结构中的指定服务器控件的子控件。 (继承自 Control) |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DataMember |
从具有多个数据集的 HtmlSelect 属性获取或设置要绑定到 DataSource 控件的数据集。 |
DataSource |
获取或设置要绑定到 HtmlSelect 控件的信息源。 |
DataSourceID |
获取或设置数据源控件的 ID 属性,该属性由 HtmlSelect 控件用于检索其数据源。 |
DataTextField |
获取或设置数据源中要绑定到 Text 控件中各项的 HtmlSelect 属性的字段。 |
DataValueField |
获取或设置数据源中要绑定到 Value 控件中各项的 HtmlSelect 属性的字段。 |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
Disabled |
获取或设置一个值,该值指示 HTML 服务器控件是否被禁用。 (继承自 HtmlControl) |
EnableTheming |
获取或设置一个值,该值指示主题是否应用于该控件。 (继承自 Control) |
EnableViewState |
获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。 (继承自 Control) |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 (继承自 Control) |
ID |
获取或设置分配给服务器控件的编程标识符。 (继承自 Control) |
IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
InnerHtml |
获取或设置控件的开始标记和结束标记之间的内容,但不自动将特殊字符转换为等效的 HTML 实体。 此控件不支持该属性。 |
InnerText |
获取或设置控件的开始标记和结束标记之间的内容,并自动将特殊字符转换为等效的 HTML 实体。 此控件不支持该属性。 |
IsBoundUsingDataSourceID |
获取一个值,该值指示 DataSourceID 控件是否定义了 HtmlSelect 属性。 |
IsChildControlStateCleared |
获取一个值,该值指示该控件中包含的控件是否具有控件状态。 (继承自 Control) |
IsTrackingViewState |
获取一个值,用于指示服务器控件是否会将更改保存到其视图状态中。 (继承自 Control) |
IsViewStateEnabled |
获取一个值,该值指示是否为该控件启用了视图状态。 (继承自 Control) |
Items |
获取一个集合,该集合包含在 HtmlSelect 控件中列出的项。 |
LoadViewStateByID |
获取一个值,该值指示控件是否通过 ID 而不是索引参与加载其视图状态。 (继承自 Control) |
Multiple |
获取或设置一个值,该值指示是否可以在 HtmlSelect 控件中同时选择多个项。 |
Name |
获取或设置与 HtmlSelect 控件关联的唯一的标识符名。 |
NamingContainer |
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
Page |
获取对包含服务器控件的 Page 实例的引用。 (继承自 Control) |
Parent |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
RequiresDataBinding |
获取或设置一个值,该值指示 HtmlSelect 控件是否需要绑定到其指定数据源。 |
SelectedIndex |
获取或设置 HtmlSelect 控件中的选定项的序号索引。 |
SelectedIndices |
获取一个集合,该集合包含 HtmlSelect 控件中所有当前选择项的从零开始的索引。 |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
Size |
获取或设置 HtmlSelect 控件的高度(以行为单位)。 |
SkinID |
获取或设置要应用于控件的外观。 (继承自 Control) |
Style |
获取应用于 ASP.NET 文件中指定的 HTML 服务器控件的所有级联样式表 (CSS) 属性的集合。 (继承自 HtmlControl) |
TagName |
获取包含 |
TemplateControl |
获取或设置对包含该控件的模板的引用。 (继承自 Control) |
TemplateSourceDirectory |
获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。 (继承自 Control) |
UniqueID |
获取服务器控件的唯一的、以分层形式限定的标识符。 (继承自 Control) |
ValidateRequestMode |
获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 (继承自 Control) |
Value |
获取 HtmlSelect 控件中选定项的值或将该控件的 SelectedIndex 属性设置为具有指定值的列表中的第一个项的索引。 |
ViewState |
获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 (继承自 Control) |
ViewStateIgnoresCase |
获取一个值,该值指示 HtmlControl 视图状态是否区分大小写。 (继承自 HtmlControl) |
ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
Visible |
获取或设置一个值,该值指示服务器控件是否作为 UI 呈现在页上。 (继承自 Control) |
方法
事件
DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
Disposed |
当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control) |
Init |
当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control) |
Load |
当服务器控件加载到 Page 对象中时发生。 (继承自 Control) |
PreRender |
在加载 Control 对象之后、呈现之前发生。 (继承自 Control) |
ServerChange |
当 HtmlSelect 控件中的选定项在向服务器的各次发送过程之间发生更改时发生。 |
Unload |
当服务器控件从内存中卸载时发生。 (继承自 Control) |
显式接口实现
扩展方法
FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
FindFieldTemplate(Control, String) |
返回指定控件的命名容器中指定列的字段模板。 |
FindMetaTable(Control) |
返回包含数据控件的元表对象。 |