sub_title
 ASP.NET
제   목 리스트 컨트롤과 컬렉션에 대해서
작성자 아침마당 등록일 2010-08-17 14:26:28 조회수 6,110

1. 리스트 컨트롤과 컬렉션
리스트 컨트롤은 선택 항목을 리스트로 보여주고, 사용자가 나열된 항목 중에서 선택하는 방식이다. 나열 항목이 많아 리스트 박스에 다 보여 줄 수 없는 경우 컨트롤 옆에 스크롤 바가 나타난다. 사용자는 스크롤하면서 원하는 항목을 선택할 수 있다. 리스트 컨트롤에는 ListBox 컨트롤과 DropDownList 컨트롤이 있다.
선택 리스트 컨트롤은 라디오 버튼과 체크 박스를 이용해서 항목을 선택하는 컨트롤이다. 선택 리스트 컨트롤에는 RadioButtonList 컨트롤과 CheckBoxList 컨트롤이 있다.
이들 컨트롤들은 Items 컬렉션을 이용하여 데이터를 추가하거나 삭제할 수 있다.
 
2. ListBox 컨트롤
ListBox 컨트롤은 여러 항목을 나열하고 이 중에서 하나 또는 그 이상을 선택할 때 사용하는 컨트롤이다. 리스트에서 하나만 선택할 것인지 여러 항목을 선택할 것인지 선택 모드를 지정할 수 있다.


 속성(설명)
 SelectionMode(단일 선택 또는 다중 선택을 지정한다.(기본 값:Single, 다중 선택:Multiple))
 Rows(리스트 박스에 보여줄 행의 개수이다.)

리스트에서 여러 항목을 선택하려면 SelectionMode 속성을 다중 선택 모드(Multiple)로 바꾸어준다. 하나 이상의 항목을 선택하려면 시프트 키, 또는 컨트롤 키를 누른 상태에서 다른 항목을 선택한다.
SelectedIndexChanged 이벤트는 리스트에서 선택항목이 바뀔 때마다 발생한다.
Protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//이벤트 처리
}
 

그러나 SelectedIndexChanged 이벤트는 발생되었을 때 바로 처리되는 것은 아니다. 일반적으로 버튼 컨트롤의 Click 이벤트가 발생했을 때 폼을 서버로 전송하는데 이 과정에서 SelectIndexChanged 이벤트가 같이 처리된다.
 

3. 리스트 컨트롤에 리스트 항목 추가하기
리스트 컨트롤에 보여주는 항목 데이터는 Items 컬렉션에 저장된다. 속성 창에서 Items 컬렉션을 선택하고 데이터를 추가할 수 있다.
리스트 컨트롤은 디자인 모드에서 데이터를 편집하는 리스트 항목 편집 대화상자를 제공한다. 여기서 리스트에 보여줄 항목을 추가하거나 제거할 수 있다.
각 리스트 항목은 하나의 ListItem 객체에 해당하며 이 객체는 Text, Value, Selected 속성으로 구성된다.
 

Items 컬렉션
컬렉션(Collection) 클래스란 하나 이상의 데이터 객체를 가질 수 있는 데이터 구조 객체이다.
 

Items 클래스에는 다음과 같은 멤버들이 정의되어 있다. 리스트를 추가하거나 제거할 때 주로 사용하며, 리스트 항목이 추가되었는지 검사할 때도 쓰인다.

속성(설명)
 Count(리스트에 담겨진 항목 개수를 알려준다.)
 SelectedIndex(현재 선택된 데이터 항목 인덱스 값을 알려준다.)
 Add(새로운 항목을 리스트 맨 마지막에 추가한다.)
 Insert(새로운 항목을 중간에 삽입한다.)
 Remove(주어진 항목을 삭제한다.)
 RemoveAt(주어진 인덱스 위치에 있는 항목을 삭제한다.)
 Clear(리스트에 담고 있는 모든 데이터를 삭제한다.)
 IndexOf(주어진 항목이 있는 인덱스 값을 알려준다.)
 Contains(주어진 항목이 리스트에 있는지 확인한다.)

Items 컬렉션은 ListItem 객체를 요소로 갖는 컬렉션 클래스이다.
리스트 항목을 추가하는 과정은 다음과 같다.
ListItem item = new ListItem(“Text”, “Value”);
ListBox1.Items.Add(item);
 
먼저 ListItem 객체를 생성하고, 텍스트(Text)와 값(Value)을 지정한다. 생성한 ListItem 객체는 Items 컬렉션의 Add 메서드를 불러 추가한다.
 
4. 리스트 컨트롤에 리스트 항목 선택하기
리스트 항목을 선택하는 방법은 Single 모드에서 항목 하나를 선택하는 방법이 있다.
이런 경우 버튼을 클릭했을 때 선택된 항목을 레이블로 표시하는 예이다.
Protected void Button1_Click(object sender, EventArgs e)
{
   Label1.Text = ListBox1.SelectedItem.Value;
}
 
다음은 Multiple 모드로 여러 개의 항목을 선택하는 예이다.
Protected void Button1_Click(object sender, EventArgs e)
{
Foreach(ListItem item in ListBox2.Items)
{
   If(item.Selected)
          {
        Label2.Text += item.Value;
          }
}
}
 
5. DropDownList 컨트롤
DropDownList 컨트롤은 버튼을 클릭할 때 선택할 항목 리스트가 아래로 펼쳐진다. 펼쳐진 리스트에서 하나의 항목을 선택하며, 선택한 후에 닫히도록 되어 있다. 이 컨트롤은 다중 선택 모드를 지원하지 않는다.
DropDownList 컨트롤에서 항목을 추가하는 방법은 ListBox 컨트롤과 같다.
ListItem item = new ListItem(“Text”, “Value”);
DropDownList1.Items.Add(item);
 
 
DropDownList 컨트롤에는 SelectedIndexChanged 이벤트가 있다. 이는 리스트에서 항목 선택이 바뀌었을 때 일어난다.
Protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
   // 이벤트 처리
}
 
6. 선택 리스트 컨트롤
선택 리스트 컨트롤에는 RadioButtonList 컨트롤과 CheckBoxList 컨트롤이 있다. RadioButtonList 컨트롤은 RadioButton 컨트롤을 여러 개 모아서 구성한 컨트롤이다. CheckBoxList 컨트롤도 역시 CheckBox 컨트롤을 여러 개 모아서 구성한 컨트롤이다.
 
선택리스트 컨트롤의 속성은 다음과 같은 것이 있다. 
 속성(설명)
 Items(선택 항목을 담고 있는 컬렉션 클래스)
 RepeatColumns(항목을 배치하는데 사용할 열의 개수)
 RepeatLayout(테이블 형식으로 반복할 것인가. 흐르는 형태로 반복할 것인가 지정(기본 값은 Table))
 RepeatDirection(항목을 배치하는 방법(기본 값은 Vertical))
 CellPadding(각 항목의 안쪽 여백 지정)
 CellSpacing(각 항목 사이의 간격을 지정)
 TextAlign(레이블 줄 맞춤(기본 값은 Right))

코드에서 항목을 추가하는 방법은 다음과 같다.
RadioButtonList1.Items.Add(new ListItem(“Text”, “Value”);
 

버튼을 클릭했을 때 처리하는 이벤트 핸들러는 다른 리스트 컨트롤과 같다.
다만 CheckBoxList 컨트롤은 다중 선택이 되므로 선택항목을 구할 때 foreach 문을 이용하여 구한다.
RadioButtonList 컨트롤에서 선택항목 구하는 방법은 다음과 같다.
Label1.Text = RadioButtonList1.SelectedItem.Value;
 

CheckBoxList 컨트롤의 경우 여러 항목을 선택할 수 있으므로 다음과 같이 선택항목을 구할 수 있다.
Foreach(ListItem item in CheckBoxList1.Items)
{
   If(item.Selected)
   {
   //이벤트 처리
  }
}

 
1
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
29  ASP.NET에서 Gridview 내용을 Excel로 export하기   member 아침마당 2 / 0 9936 2010-11-01
28  ASP.NET에서 메일 보내기   member 아침마당 0 / 0 5625 2010-10-26
27  문자열 변수 = 문자열 변수 + 정수형 변수   member 아침마당 0 / 0 3305 2010-10-21
26  출력 매개변수를 갖는 저장 프로시저 ASP.NET에서 사용하기   member 아침마당 0 / 0 8141 2010-10-04
25  ASP.NET에서 저장 프로시저 사용하기   member 아침마당 2 / 0 9800 2010-09-30
24  저장 프로시저 만들기   member 아침마당 1 / 0 4778 2010-09-28
23  Visual Studio 2010 단축키 요약 파일 첨부파일   member 아침마당 0 / 0 5075 2010-09-07
22  ASP.NET에서 예외 처리에 대해서   member 아침마당 0 / 0 4561 2010-08-29
21  답변형 게시판 예제 파일   member 아침마당 1 / 0 3253 2010-08-22
20  리스트 컨트롤과 컬렉션에 대해서   member 아침마당 1 / 0 6110 2010-08-17
19  데이터 바인딩과 배열에 대해서   member 아침마당 0 / 0 3918 2010-08-16
18  Gridview control에 TemplateField를 사용하는 이유   member 아침마당 1 / 1 4350 2010-08-12
17  C#의 제어문   member 아침마당 0 / 0 5000 2010-08-04
16  Windows SharePoint Services 3.0 도구에 대하여   member 아침마당 0 / 0 3320 2010-07-17
15  C#의 기본 규칙   member 아침마당 0 / 0 3674 2010-07-09
14  닷넷에서 DataSet 다루기   member 아침마당 0 / 0 24550 2010-06-21
13  ASP.NET에서 TextBox에 onfocus, onblur 이벤트 적용 예   member 아침마당 0 / 0 5403 2010-06-15
12  ASP.NET에서 TextBox 엔터키 적용과 주민 번호 검증 예   member 아침마당 0 / 0 5518 2010-06-15
11  ASP.NET 정수<-->문자열 형변환, 메시지출력, switch문 사용 예   member 아침마당 0 / 0 8040 2010-06-15
10  닷넷에서 XML 다루기 이미지 첨부파일   member 아침마당 1 / 0 5641 2010-06-07
9  데이터 그리드 안에 있는 컨트롤 이벤트 만들기   member 깐소금 0 / 0 5395 2007-11-18
8  로딩페이지 구현하기   member 깐소금 0 / 0 6996 2007-11-18
7  CDO객체를 이용하여 야후 smtp로 메일 보내기   member 먹깨비 0 / 0 4962 2007-11-15
6  C# 버블소트 알고리즘   member 웹스톤 0 / 0 4454 2007-11-14
5  @OutputCache 디렉티브를 사용한 페이지 성능 향상   member 먹깨비 0 / 0 6500 2007-09-17
write
[2] button