Usando a coleção Controls em uma página da Web ASP.NET
A Control classe e suas classes derivadas (incluindo a classe Page ) exibem uma Controls propriedade que retorna uma ControlCollection instância.Essa hierarquia permite que você percorra a árvore de controle de maneira programática para procurar controles específicos na página, assim como para checar os tipos de controles dentro da coleção em ordem para acessar suas propriedades.O exemplo de código a seguir mostra como percorrer a hierarquia de controle da página para localizar ocorrências do controle <asp:TextBox> (nos quais houver somente uma).
Observação de segurança: |
---|
Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança.Por padrão, páginas Web ASP.NET validam se as entradas de usuário não incluem scripts ou elementos HTML.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos. |
<%@ 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" >
<title>Using the Controls Collection in a Web Form</title>
<script language="vb" >
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" >
<table width="80%"
border="1"
cellpadding="1"
cellspacing="1">
<tr>
<td align="center" style="width:50%;">
<asp:TextBox id="MyTextBox"
text="Type something here"
/>
</td>
<td align="center" style="width:50%;">
<span id="myspan" > </span>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input id="changebtn"
type="submit"
onserverclick="changebtn_click"
value="move your text"
/>
</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" >
<title>Using the Controls Collection in a Web Form</title>
<script language="c#" >
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" >
<table width="80%"
border="1"
cellpadding="1"
cellspacing="1">
<tr>
<td align="center" style="width:50%;">
<asp:TextBox id="MyTextBox"
text="Type something here"
/>
</td>
<td align="center" style="width:50%;">
<span id="myspan" > </span>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input id="changebtn"
type="submit"
onserverclick="ChangeBtn_Click"
value="move your text"
/>
</td>
</tr>
</table>
</form>
</body>
</html>