ASP.NET 웹 페이지에서 Controls 컬렉션 사용

Visual Studio 2010

업데이트: 2007년 11월

Control 클래스 및 파생 클래스(Page 클래스 포함)는 ControlCollection 인스턴스를 반환하는 Controls 속성을 노출합니다. 이 계층 구조를 사용하면 프로그래밍 방식으로 컨트롤 트리를 탐색하여 페이지에서 특정 컨트롤을 검색할 수 있으며 컨트롤 속성에 액세스하기 위해 컬렉션에서 컨트롤 형식을 확인할 수 있습니다. 다음 코드 예제에서는 페이지의 컨트롤 계층 구조를 탐색하여 <asp:TextBox> 컨트롤의 인스턴스를 찾는 방법을 보여 줍니다. 이 인스턴스는 하나뿐입니다.

20zys56y.alert_security(ko-kr,VS.100).gif보안 정보:

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다. 기본적으로 ASP.NET 페이지에서는 사용자 입력 내용에 스크립트나 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">&nbsp;</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>


표시: