속성(설명)
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)
{
//이벤트 처리
}
}