Verwenden der Steuerelementauflistung in einer ASP.NET-Webseite
Aktualisiert: November 2007
Die Control-Klasse und ihre Ableitungen (einschließlich der Page-Klasse) verfügen über eine Controls-Eigenschaft, die eine ControlCollection-Instanz zurückgibt. Mit dieser Hierarchie können Sie die Steuerelementstruktur programmgesteuert nach bestimmten Steuerelementen auf der Seite durchsuchen sowie den Typ von Steuerelementen der Auflistung bestimmen, um auf deren Eigenschaften zuzugreifen. Das folgende Codebeispiel veranschaulicht, wie Sie die Steuerelementhierarchie der Seite nach Instanzen des <asp:TextBox>-Steuerelements (das nur einmal vorkommt) durchsuchen.
Sicherheitshinweis: |
---|
In diesem Beispiel ist ein Textfeld enthalten, das eine Benutzereingabe akzeptiert. Dies stellt ein potenzielles Sicherheitsrisiko dar. Standardmäßig stellt die ASP.NET-Seite sicher, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe. |
<%@ 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>Using the Controls Collection in a Web Form</title>
<script language="vb" runat="server">
Private Sub ChangeBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim c As Control
Dim c2 As Control
For Each c In Page.Controls
If c.Controls.Count > 0 Then
For Each c2 In c.Controls
If c2.GetType.ToString = "System.Web.UI.WebControls.TextBox" Then
MySpan.InnerHtml = CType(c2, TextBox).Text
CType(c2, TextBox).Text = ""
End If
Next
End If
Next
End Sub
</script>
</head>
<body>
<form id="form1" runat="server">
<table width="80%"
border="1"
cellpadding="1"
cellspacing="1">
<tr>
<td align="center" style="width:50%;">
<asp:TextBox id="MyTextBox"
text="Type something here"
runat="server"/>
</td>
<td align="center" style="width:50%;">
<span id="myspan" runat="server"> </span>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input id="changebtn"
type="submit"
onserverclick="changebtn_click"
value="move your text"
runat="server" />
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ 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>Using the Controls Collection in a Web Form</title>
<script language="c#" runat="server">
private void ChangeBtn_Click(object sender, EventArgs e)
{
foreach(Control c in Page.Controls)
{
if (c.Controls.Count > 0)
{
foreach(Control c2 in c.Controls)
{
if (c2.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
myspan.InnerHtml = ((TextBox)c2).Text;
((TextBox)c2).Text = "";
}
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table width="80%"
border="1"
cellpadding="1"
cellspacing="1">
<tr>
<td align="center" style="width:50%;">
<asp:TextBox id="MyTextBox"
text="Type something here"
runat="server"/>
</td>
<td align="center" style="width:50%;">
<span id="myspan" runat="server"> </span>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input id="changebtn"
type="submit"
onserverclick="ChangeBtn_Click"
value="move your text"
runat="server" />
</td>
</tr>
</table>
</form>
</body>
</html>