방법: List 웹 서버 컨트롤의 선택 확인
업데이트: 2007년 11월
이 항목의 정보는 ListBox, DropDownList, CheckBoxList 및 RadioButtonList 웹 서버 컨트롤에 적용됩니다.
list 웹 서버 컨트롤을 사용하여 수행하는 작업 중 가장 일반적인 작업 중의 하나는 사용자가 선택한 항목(들)을 확인하는 작업입니다. list 컨트롤이 단일 선택과 다중 선택 중 어느 것을 허용하는지에 따라 프로시저가 달라집니다.
DropDownList 컨트롤, RadioButtonList 컨트롤 및 단일 선택 ListBox 컨트롤을 사용할 경우 다음 프로시저를 사용합니다.
단일 선택 list 컨트롤에서 선택을 확인하려면
다음 방법 중 하나를 사용합니다.
선택한 항목의 인덱스 값을 가져오려면 SelectedIndex 속성 값을 읽습니다. 인덱스는 0부터 시작합니다. 선택된 값이 없는 경우 속성 값은 -1입니다.
선택한 항목의 내용을 가져오려면 컨트롤의 SelectedItem 속성을 가져옵니다. 이 속성은 ListItem 형식의 개체를 반환합니다. 개체의 Text 또는 Value 속성을 가져오면 선택한 항목의 내용을 가져올 수 있습니다.
보안 정보: Web Forms 페이지의 컨트롤에는 잠재적으로 악의성이 있는 클라이언트 스크립트가 포함될 수 있습니다. 기본적으로 Web Forms 페이지에서는 사용자 입력 내용에 스크립트나 HTML 요소가 포함되지 않도록 유효성을 검사합니다. 자세한 내용은 방법: 문자열에 HTML 인코딩을 적용하여 스크립트를 이용한 공격으로부터 웹 응용 프로그램 보호를 참조하십시오.
다음 예제 코드는 RadioButtonList 컨트롤에서 선택한 항목을 테스트하는 방법을 보여 줍니다. 이 코드는 SelectedIndex 속성 값을 읽어 먼저 선택 유무를 확인합니다. 선택된 항목이 없으면 속성 값은 -1입니다. 그런 다음 SelectedItem 개체를 가져와서 해당 개체의 Text 속성을 표시합니다.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Is anything selected? The index is -1 if nothing is selected. If RadioButtonList1.SelectedIndex > -1 Then Label1.Text="You chose: " & RadioButtonList1.SelectedItem.Text End If End Sub
Protected void Button1_Click (object sender, System.EventArgs e) { // Is anything selected? The index is -1 if nothing is selected. if (RadioButtonList1.SelectedIndex > -1) { Label1.Text="You chose: " + RadioButtonList1.SelectedItem.Text; } }
list 컨트롤이 다중 선택을 지원할 경우 컨트롤을 순환 검색하여 선택한 항목을 하나씩 확인해야 합니다.
다중 선택 list 컨트롤에서 선택을 확인하려면
컨트롤의 Items 컬렉션을 순환 검색하면서 모든 개별 항목의 Selected 속성을 테스트합니다.
다음 코드 예제는 ListBox1이라는 다중 선택 ListBox 컨트롤에서 선택을 테스트하는 방법을 보여 줍니다. 이 코드는 선택한 항목 목록을 레이블에 표시합니다.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim msg As String Dim li As ListItem msg = "" For Each li In ListBox1.Items If li.Selected = True Then msg = msg & "<br>" & li.Text & " selected." End If Next Label1.Text = msg End Sub
Protected void Button1_Click(object sender, System.EventArgs e) { string msg = "" ; foreach(ListItem li in ListBox1.Items) { if(li.Selected == true) { msg += "<BR>" + li.Text + " is selected."; } } Label1.Text = msg; }