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.Selected 專案的 屬性設定為 true
。
您可以藉由設定 Size 和 屬性來控制控制項的外觀和 Multiple 行為 HtmlSelect 。 屬性 Size 會指定控制項資料列) 的高度 (。 屬性 Multiple 會指定是否可以在 控制項中 HtmlSelect 同時選取多個專案。
根據預設, HtmlSelect 控制項會顯示為下拉式清單方塊。 如果藉由將 Multiple 屬性設定為) 或將 屬性設定為 true
大於) 的值 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.TextListItem.Value 控制項中專案的 和 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 標記的控制項識別碼。 (繼承來源 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 |
取得控制項事件處理常式委派 (Delegate) 的清單。 這個屬性是唯讀的。 (繼承來源 Control) |
HasChildViewState |
取得值,指出目前伺服器控制項的子控制項是否有任何已儲存的檢視狀態設定。 (繼承來源 Control) |
ID |
取得或設定指派給伺服器控制項的程式設計識別項。 (繼承來源 Control) |
IdSeparator |
取得用來分隔控制項識別項的字元。 (繼承來源 Control) |
InnerHtml |
取得或設定控制項的開頭和結尾標記之間的內容,而不須自動將特殊字元轉換為對等的 HTML 實體 (Entity)。 這個控制項不支援這個屬性。 |
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 |
在網頁控制階層架構中取得伺服器控制項之父控制項的參考。 (繼承來源 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) |
傳回包含資料控制項的中繼資料表物件。 |