다음을 통해 공유


연습: DataRepeater 컨트롤의 데이터 표시(Visual Studio)

이 연습에서는 DataRepeater 컨트롤의 바인딩된 데이터를 표시하는 작업을 처음부터 끝까지 보여 주는 기본 시나리오를 제공합니다.

Prerequisite

이 연습을 수행하려면 Northwind 샘플 데이터베이스가 있어야 합니다.

개발 컴퓨터에 이 데이터베이스가 없는 경우 Microsoft 다운로드 센터에서 다운로드할 수 있습니다. 자세한 내용은 샘플 데이터베이스 다운로드(LINQ to SQL)를 참조하십시오.

개요

이 연습의 첫 번째 부분은 다음과 같은 네 가지 주요 작업으로 구성됩니다.

  • 솔루션 만들기

  • DataRepeater 컨트롤 추가

  • 데이터 소스 추가

  • 데이터 바인딩된 컨트롤 추가

참고

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

DataRepeater 솔루션 만들기

첫 번째 단계에서 프로젝트 및 솔루션을 만듭니다.

DataRepeater 솔루션을 만들려면

  1. Visual Studio의 파일 메뉴에서 새 프로젝트를 클릭합니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 창에서 Visual Basic을 확장하고 Windows를 클릭합니다.

  3. 템플릿 창에서 Windows Forms 응용 프로그램을 클릭합니다.

  4. 이름 상자에 DataRepeaterApp를 입력합니다.

  5. 확인을 클릭합니다.

    Windows Forms 디자이너가 열립니다.

  6. Windows Forms 디자이너에서 폼을 선택합니다. 속성 창에서 Size 속성을 800, 700으로 설정합니다.

DataRepeater 컨트롤 추가

이 단계에서는 폼에 DataRepeater 컨트롤을 추가합니다.

DataRepeater 컨트롤을 추가하려면

  1. 보기 메뉴에서 도구 상자를 클릭합니다.

    도구 상자가 열립니다.

  2. Visual Basic PowerPacks 탭을 선택합니다.

  3. DataRepeater 컨트롤을 Form1로 끌어 옵니다.

  4. 속성 창에서 Location 속성을 0, 25로 설정합니다.

  5. Size 속성을 460, 600으로 설정합니다.

데이터 소스 추가

이 단계에서는 DataRepeater 컨트롤에 대한 데이터 소스를 추가합니다.

데이터 소스를 연결하려면

  1. 데이터 메뉴에서 데이터 소스 표시를 클릭합니다.

  2. 데이터 소스 창에서 새 데이터 소스 추가를 클릭합니다.

  3. 데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.

  4. 데이터 연결 선택 페이지에서 다음 단계 중 하나를 수행합니다.

    • Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 클릭합니다.

      또는

    • 새 연결을 클릭하여 새 데이터 연결을 구성합니다. 자세한 내용은 How to: Create Connections to SQL Server Databases를 참조하십시오.

  5. 데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.

    참고

    대화 상자가 나타나는 경우 를 클릭하여 프로젝트에 파일을 저장합니다.

  6. 응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

  7. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  8. CustomersOrders 테이블 옆의 확인란을 선택한 다음 마침을 클릭합니다.

    NorthwindDataSet이 프로젝트에 추가되고 CustomersOrders 테이블이 데이터 소스 창에 나타납니다.

데이터 바인딩된 컨트롤 추가

이 단계에서는 데이터 바인딩된 컨트롤을 DataRepeater에 추가합니다.

데이터 바인딩된 컨트롤을 추가하려면

  1. 데이터 소스 창에서 Customers 테이블의 최상위 노드를 선택합니다.

  2. 테이블 노드의 드롭다운 목록에서 자세히를 클릭하여 테이블의 놓기 형식을 자세히로 변경합니다.

  3. Customers 테이블 노드를 선택하고 DataRepeater 컨트롤의 항목 템플릿 영역(위쪽 영역)으로 끌어 옵니다.

    BindingNavigator 컨트롤이 폼에 추가되고 NorthwindDataSet, CustomersBindingSource, CustomersTableAdapter, TableAdapterManagerCustomersBindingNavigator 구성 요소가 구성 요소 트레이에 추가됩니다.

  4. 모든 필드와 해당 레이블을 선택하고 항목 템플릿 영역 왼쪽 가장자리 근처에 배치합니다.

  5. 마지막 다섯 개의 필드(Region, Postal Code, Country, PhoneFax)와 해당 레이블을 선택하고 첫 번째 여섯 개 필드의 오른쪽 위로 이동합니다.

  6. 항목 템플릿(컨트롤의 위쪽 영역)을 선택합니다.

  7. 속성 창에서 Size 속성을 427, 170으로 설정합니다.

이 시점에서 작동 중인 응용 프로그램에서는 고객의 반복 목록을 표시합니다. F5 키를 눌러 응용 프로그램을 실행하고, 데이터를 변경하고, 고객 레코드를 추가 또는 삭제할 수 있습니다.

다음의 선택적인 단계에서는 DataRepeater 컨트롤을 사용자 지정하는 방법을 배웁니다.

다음 단계(옵션)

이 연습 부분은 다음과 같은 네 가지 선택적인 작업으로 구성됩니다.

  • DataRepeater 컨트롤 모양 변경

  • 사용자가 레코드를 추가하거나 삭제하지 못하도록 지정

  • DataRepeater 컨트롤에 검색 기능 추가

  • DataRepeater 컨트롤에 마스터 및 세부 테이블 추가

DataRepeater 컨트롤 모양 변경

이 선택적인 단계에서는 디자인 타임에 DataRepeater 컨트롤의 BackColor를 변경합니다. 또한 행을 다른 색으로 표시하고 조건에 따라 레이블의 ForeColor를 변경하는 코드를 추가합니다.

컨트롤 모양을 변경하려면

  1. Windows Forms 디자이너에서 DataRepeater 컨트롤의 주(아래쪽) 영역을 선택합니다.

  2. 속성 창에서 BackColor 속성을 흰색으로 설정합니다.

  3. DataRepeater를 두 번 클릭하여 코드 편집기를 엽니다.

  4. 코드 편집기의 이벤트 드롭다운 목록에서 DrawItem을 클릭합니다.

  5. DrawItem 이벤트 처리기에서 BackColor를 대체하는 다음 코드를 추가합니다.

    ' Alternate the back color.
    If (e.DataRepeaterItem.ItemIndex Mod 2) <> 0 Then
        ' Apply the secondary back color.
        e.DataRepeaterItem.BackColor = Color.AliceBlue
    Else
        ' Apply the default back color.
        e.DataRepeaterItem.BackColor = DataRepeater1.BackColor
    End If
    
    // Alternate the back color.
    if ((e.DataRepeaterItem.ItemIndex % 2) != 0)
    // Apply the secondary back color.
    {
        e.DataRepeaterItem.BackColor = Color.AliceBlue;
    }
    else
    {
        // Apply the default back color.
        e.DataRepeaterItem.BackColor = dataRepeater1.BackColor;
    }
    
  6. DrawItem 이벤트 처리기에서 조건에 따라 레이블의 ForeColor를 변경하는 다음 코드를 추가합니다.

    If e.DataRepeaterItem.Controls(RegionTextBox.Name).Text = "" Then
        e.DataRepeaterItem.Controls("RegionLabel").
         ForeColor = Color.Red
    Else
        e.DataRepeaterItem.Controls("RegionLabel").
         ForeColor = Color.Black
    End If
    
    if (e.DataRepeaterItem.Controls[regionTextBox.Name].Text == "")
    {
        e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Red;
    }
    else
    {
        e.DataRepeaterItem.Controls["regionLabel"].ForeColor = Color.Black;
    }
    
  7. F5 키를 눌러 응용 프로그램을 실행하고 사용자 지정을 봅니다.

사용자가 레코드를 추가하거나 삭제하지 못하도록 지정

이 선택적인 단계에서는 사용자가 DataRepeater 컨트롤의 레코드를 추가하거나 삭제하지 못하도록 지정하는 코드를 추가합니다.

사용자가 레코드를 추가하거나 삭제하지 못하도록 지정

  1. Windows Forms 디자이너에서 폼을 두 번 클릭하여 코드 편집기를 엽니다.

  2. Form_Load 이벤트에 다음 코드를 추가합니다.

    DataRepeater1.AllowUserToAddItems = False
    DataRepeater1.AllowUserToDeleteItems = False
    BindingNavigatorAddNewItem.Enabled = False
    CustomersBindingSource.AllowNew = False
    BindingNavigatorDeleteItem.Enabled = False
    
    dataRepeater1.AllowUserToAddItems = false;
    dataRepeater1.AllowUserToDeleteItems = false;
    bindingNavigatorAddNewItem.Enabled = false;
    customersBindingSource.AllowNew = false;
    bindingNavigatorDeleteItem.Enabled = false;
    
  3. 클래스 이름 드롭다운 목록에서 BindingNavigatorDeleteItem을 클릭합니다. 메서드 이름 드롭다운 목록에서 EnabledChanged를 클릭합니다.

  4. BindingNavigatorDeleteItem_EnabledChanged 이벤트 처리기에 다음 코드를 추가합니다.

    If BindingNavigatorDeleteItem.Enabled = True Then
        BindingNavigatorDeleteItem.Enabled = False
    End If
    
    if (bindingNavigatorDeleteItem.Enabled == true)
    {
        bindingNavigatorDeleteItem.Enabled = false;
    }
    

    참고

    BindingSource로 인해 현재 레코드가 변경될 때마다 DeleteItem 단추가 활성화되므로 이 단계를 수행해야 합니다.

  5. F5 키를 눌러 응용 프로그램을 실행합니다. DeleteItem 단추가 비활성화되므로 사용자가 Delete 키를 눌러 항목을 삭제할 수 없습니다.

DataRepeater 컨트롤에 검색 기능 추가

이 선택적인 단계에서는 DataRepeater 컨트롤에서 값을 검색하는 기능을 구현합니다. 검색 문자열이 발견되면 컨트롤에서 값을 포함하는 항목을 선택하고 항목을 뷰로 스크롤합니다.

검색 기능을 추가하려면

  1. 도구 상자에서 DataRepeater 컨트롤이 포함된 폼으로 TextBox 컨트롤을 끌어 옵니다.

    이 컨트롤을 DataRepeater 컨트롤 아래에 배치합니다.

  2. 속성 창에서 Name 속성을 SearchTextBox로 변경합니다.

  3. 도구 상자에서 DataRepeater 컨트롤이 포함된 폼으로 Button 컨트롤을 끌어 옵니다. 이 컨트롤을 DataRepeater 컨트롤 아래에 배치합니다.

  4. 속성 창에서 Name 속성을 SearchButton으로 변경합니다. Text 속성을 Search로 변경합니다.

  5. Button 컨트롤을 두 번 클릭하여 코드 편집기를 열고 SearchButton_Click 이벤트 처리기에 다음 코드를 추가합니다.

    Dim foundIndex As Integer
    Dim searchString As String
    searchString = SearchTextBox.Text
    ' Search for the string in the CustomerID field.
    foundIndex = CustomersBindingSource.Find("CustomerID",
     searchString)
    If foundIndex > -1 Then
        DataRepeater1.CurrentItemIndex = foundIndex
    Else
        MsgBox("Item " & searchString & " not found.")
    End If
    
    int foundIndex;
    string searchString;
    searchString = searchTextBox.Text;
    // Search for the string in the CustomerID field.
    foundIndex = customersBindingSource.Find("CustomerID", searchString);
    if (foundIndex > -1)
    {
        dataRepeater1.CurrentItemIndex = foundIndex;
    }
    else
    {
        MessageBox.Show("Item " + searchString + " not found.");
    }
    
  6. F5 키를 눌러 응용 프로그램을 실행합니다. SearchTextBox에 고객 ID를 입력하고 Search 단추를 클릭합니다.

DataRepeater에 마스터 및 세부 테이블 추가

이 선택적인 단계에서는 각 고객에 대한 관련 주문을 표시하는 두 번째 DataRepeater 컨트롤을 추가합니다.

마스터 및 세부 테이블을 추가하려면

  1. 도구 상자Visual Basic PowerPacks 탭에서 폼으로 두 번째 DataRepeater 컨트롤을 끌어 옵니다.

  2. 속성 창에서 Location 속성을 465, 25로 설정합니다.

  3. Size 속성을 315, 600으로 설정합니다.

  4. 데이터 소스 창에서 Customers 테이블 노드를 확장하고 Orders 테이블에 대한 상세 노드를 선택합니다.

  5. 테이블 노드의 드롭다운 목록에서 자세히를 클릭하여 이 Orders 테이블의 놓기 형식을 자세히로 변경합니다.

  6. Orders 테이블 노드를 두 번째 DataRepeater 컨트롤의 항목 템플릿 영역(위쪽 영역)으로 끌어 옵니다.

    OrdersBindingSource 구성 요소 및 OrdersTableAdapter 구성 요소가 구성 요소 트레이에 추가됩니다.

  7. F5 키를 눌러 응용 프로그램을 실행합니다. 첫 번째 DataRepeater 컨트롤에서 각 고객을 선택하면 해당 고객에 대한 주문이 두 번째 DataRepeater 컨트롤에 표시됩니다.

참고 항목

작업

방법: DataRepeater 컨트롤의 바인딩된 데이터 표시(Visual Studio)

방법: DataRepeater 컨트롤의 바인딩되지 않은 데이터 표시(Visual Studio)

방법: DataRepeater 컨트롤의 레이아웃 변경(Visual Studio)

방법: DataRepeater 컨트롤의 항목 머리글 표시(Visual Studio)

방법: DataRepeater 컨트롤의 데이터 검색(Visual Studio)

방법: 두 DataRepeater 컨트롤을 사용하여 마스터/세부 폼 만들기(Visual Studio)

방법: DataRepeater 컨트롤의 모양 변경(Visual Studio)

방법: DataRepeater 항목 추가 및 삭제 사용 안 함(Visual Studio)

DataRepeater 컨트롤 문제 해결(Visual Studio)

개념

DataRepeater 컨트롤 소개(Visual Studio)