Visual Basic .NET을 사용하여 ASP.NET DataGrid에 대한 요약 행을 만드는 방법

이 단계별 문서에서는 Visual Basic .NET을 사용하여 ASP.NET DataGrid 컨트롤에 대한 요약 행을 만드는 방법을 설명합니다.

원래 제품 버전: Visual Basic .NET
원본 KB 번호: 313154

요약

이 문서에서는 Visual Basic .NET 프로젝트를 만들고, Northwind 데이터베이스에서 Sales Totals by Amount이라는 보기에 액세스하는 코드를 추가한 다음, Sales Totals by Amount 보기를 DataGrid에 바인딩합니다. 이 샘플에서는 DataGrid의 이벤트를 사용하여 ItemDataBound DataGrid에 데이터를 바인딩할 때 SaleAmount 필드를 요약합니다. 또한 이 샘플에서는 DataGrid의 바닥글을 사용하여 요약 또는 합계를 표시합니다.

이 문서에서는 Microsoft .NET Framework 클래스 라이브러리 네임스페이스 를 참조합니다System.Data.SqlClient.

참고

이 문서의 Microsoft Visual C# .NET 버전은 326339 참조하세요.

요구 사항

다음 목록에서는 필요한 권장 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩을 간략하게 설명합니다.

  • Microsoft Windows
  • Microsoft .NET Framework
  • Microsoft Visual Studio .NET
  • Microsoft 인터넷 정보 서비스(IIS)
  • Microsoft SQL Server 7.0 이상 및 Northwind 데이터베이스

참고

Northwind 데이터베이스는 SQL sServer 7.0 이상에 포함되어 있습니다.

Visual Basic .NET 프로젝트를 만들고 DataGrid를 추가합니다.

이 섹션에서는 Visual Basic .NET 프로젝트를 만들고, DataGrid의 형식을 선택한 다음, DataGrid를 설정하여 바닥글을 표시합니다. 바닥글을 사용하여 요약을 표시하므로 바닥글을 표시하는 것이 중요합니다.

참고

기본적으로 ShowFooter 속성은 꺼져 있습니다.

  1. Visual Studio .NET을 시작합니다. Visual Studio .NET IDE가 나타납니다.

  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  3. 새 프로젝트 대화 상자의 프로젝트 형식에서 Visual Basic Projects를 클릭한 다음 템플릿에서 ASP.NET 웹 애플리케이션 클릭합니다.

  4. 새 프로젝트 대화 상자에서 이름 상자를 사용할 수 없습니다(흐리게 표시됨). 위치 상자에는 다음 텍스트(또는 이와 유사)가 포함됩니다.
    http://localhost/WebApplication1

    위치를 http://localhost/SummaryRow로 변경한 다음 확인을 클릭합니다. 이름이 WebForm1.aspx 웹 양식을 포함하는 새 프로젝트가 만들어집니다.

  5. 솔루션 탐색기 WebForm1.aspx 두 번 클릭합니다.

  6. 도구 상자에서 양식으로 DataGrid 컨트롤을 끌어옵니다.

  7. DataGrid 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 자동 서식을 클릭합니다. 색상형 1을 클릭한 다음 확인을 클릭합니다.

  8. DataGrid 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다. 속성 대화 상자에서 ShowFooter 속성의 값을 True로 변경합니다.

데이터베이스에 액세스하는 코드 작성

이 섹션에서는 Northwind 데이터베이스에 있는 Sales Totals by Amount 보기를 사용하여 SaleAmount 필드에 대한 요약을 계산합니다. Sales Totals by Amount 보기에는 Orders, CompanyName 및 SaleAmount 필드가 포함됩니다.

  1. IDE에서 웹 양식을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  2. 코드 숨김 창에서 페이지 맨 위에 다음 코드를 추가합니다.

    Imports System.Data
    Imports System.Data.SqlClient
    
  3. 클래스 선언 섹션에서 다음 코드를 추가합니다.

    Private myTotal As System.Double 'This variable tracks the running total.
    
  4. 이벤트의 코드를 Page_Load 다음 코드로 바꿉 있습니다.

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Connect to the database, retrieve data, and then fill the data in the DataSet.
        Dim myConnection As New SqlConnection("server=(local)\netsdk;"Integrated Security=SSPI" & _
        pwd=;database=northwind")
        Dim myDataAdapter As New SqlDataAdapter("SELECT top 15 [OrderID], [CompanyName], " & _
        "[SaleAmount] FROM [Northwind].[dbo].[Sales Totals by Amount]", myConnection)
        Dim myDataSet As New DataSet()
        myDataAdapter.Fill(myDataSet)
        'Set the DataSource for the DataGrid, and then bind the data.
        DataGrid1.DataSource = myDataSet
        DataGrid1.DataBind()
    End Sub
    
  5. 환경에 맞게 연결 문자열 수정합니다.

ItemDataBound 이벤트 사용

이벤트는 ItemDataBound 항목이 DataGrid 컨트롤에 바인딩된 데이터인 후에 발생합니다. 이 이벤트는 클라이언트에 표시되기 전에 데이터 항목에 액세스할 수 있는 마지막 기회를 제공합니다. 이 이벤트가 발생한 후 데이터 항목은 null이며 더 이상 사용할 수 없습니다.

데이터가 바인딩된 각 항목에 대해 속성을 검사 ItemType 합니다. 가 또는 AlternatingItem형식 Item 인 경우 ItemType SaleAmount 값이 포함된 항목의 마지막 셀에서 값을 받습니다. 이 샘플에서는 실행 중인 요약 변수에 이 값을 추가합니다. 가 이 ItemTypeFooter면 모든 행에서 합계를 받습니다. 따라서 요약 변수의 값을 마지막 셀의 텍스트 값에 할당합니다.

참고

이 코드는 서식 식을 사용하여 SaleAmount 데이터에 대한 균일한 모양을 제공합니다.

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

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
    Select Case e.Item.ItemType
    Case ListItemType.AlternatingItem, ListItemType.Item
    'Calculate total for the field of each row and alternating row.
    myTotal += CDbl(e.Item.Cells(2).Text)
    'Format the data, and then align the text of each cell to the right.
    e.Item.Cells(2).Text = Format(CDbl(e.Item.Cells(2).Text), "##,##0.00")
    e.Item.Cells(2).Attributes.Add("align", "right")
    Case ListItemType.Footer
    'Use the footer to display the summary row.
    e.Item.Cells(1).Text = "Total Sales"
    e.Item.Cells(1).Attributes.Add("align", "left")
    e.Item.Cells(2).Attributes.Add("align", "right")
    e.Item.Cells(2).Text = myTotal.ToString("c")
    End Select
End Sub

프로젝트 빌드 및 코드 테스트

  1. 파일 메뉴에서 모두 저장을 클릭합니다.
  2. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.
  3. 솔루션 탐색기 .aspx 페이지를 마우스 오른쪽 단추로 클릭한 다음 브라우저에서 보기를 클릭합니다. .aspx 페이지가 브라우저에 나타나고 DataGrid에 OrderID, CompanyName 및 SaleAmount 열이 표시됩니다. 바닥글에 SaleAmount 열의 합계가 표시됩니다.

참조