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 + ", "; } } }