더북(TheBook)

6.14.3 마무리

드롭다운리스트 컨트롤은 웹 페이지에 콤보박스 또는 드롭다운리스트라 불리는 선택 가능한 리스트를 출력하는 데 사용된다.

 

Note 동적으로 DropDownList 생성 및 선택된 값 가져오기


ASP.NET의 모든 서버 컨트롤은 동적으로 생성하고 이벤트 등을 줄 수 있다. 이 책의 수준을 넘어가기에 참고용으로 다음 코드 샘플을 제시한다. 동적으로 드롭다운리스트를 생성하고 선택한 값을 가져오는 예다.

▼  FrmDropDownListDynamicCreation.aspx

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<hr />
<asp:Button ID="btnGet" runat="server" Text="값 가져오기" OnClick="btnGet_Click" />
<hr />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

 

PlaceHolder 컨트롤을 하나 두고, 코드 숨김 파일에서 동적으로 Controls.Add() 메서드를 사용해 추가하고, 추가된 컨트롤을 가져올 때는 FindControl() 메서드를 사용해서 가져올 수 있다.

▼  FrmDropDownListDynamicCreation.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
  for (int i = 1; i <= 2; i++)
  {
      DropDownList ddl = new DropDownList();
      ddl.ID = String.Format("ddl{0}", i); // ddl1, ddl2
      ddl.Items.Add(new ListItem("Text1", "Value1"));
      ddl.Items.Add(new ListItem("Text2", "Value2"));
      ddl.Items.Add(new ListItem("Text3", "Value3"));
      PlaceHolder1.Controls.Add(ddl); // 동적으로 생성된 드롭다운리스트 추가
  }
}
protected void btnGet_Click(object sender, EventArgs e)
{
  Label1.Text = "선택된 값: ";
  for (int i = 1; i <= 2; i++)
  {
      DropDownList ddl = PlaceHolder1.FindControl(
          String.Format("ddl{0}", i)) as DropDownList;
      if (ddl != null)
      {
          Label1.Text += ddl.SelectedValue + ", ";
      }
  }
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.