Condividi tramite


Utilizzo dell'insieme Controls in una pagina Web ASP.NET

Aggiornamento: novembre 2007

La classe Control e le rispettive classi derivate (compresa la classe Page) espongono una proprietà Controls che restituisce un'istanza ControlCollection. Questa gerarchia consente di scorrere la struttura di controlli a livello di codice per eseguire la ricerca di controlli specifici in una pagina, nonché di verificare il tipo di controlli all'interno dell'insieme per accedere alle rispettive proprietà. Nell'esempio di codice riportato di seguito viene illustrato come scorrere la gerarchia di controlli della pagina per l'individuazione di istanze del controllo <asp:TextBox>, di cui ne esiste solo una.

Nota sulla sicurezza:

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite script.

<%@ 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" >&nbsp;</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" >&nbsp;</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>

Vedere anche

Altre risorse

Accesso a controlli ASP.NET a livello di codice