DropDownList 한 개로 마스터/세부 정보 필터링(C#)Master/Detail Filtering With a DropDownList (C#)

Scott Mitchellby Scott Mitchell

샘플 앱 다운로드 또는 PDF 다운로드Download Sample App or Download PDF

이 자습서에서는 Dropdownlist를 사용 하 여 "마스터" 레코드를 표시 하 고 "details"를 표시 하는 DataList를 사용 하는 단일 웹 페이지에서 마스터/세부 보고서를 표시 하는 방법을 알아봅니다.In this tutorial we see how to display master/detail reports in a single web page using DropDownLists to display the "master" records and a DataList to display the "details".

소개Introduction

먼저 DropDownList 자습서를 사용 하 여 이전 마스터/세부 정보 필터링 에서 GridView를 사용 하 여 만든 마스터/세부 정보 보고서는 "마스터" 레코드 집합을 표시 하는 것으로 시작 합니다.The master/detail report, which we first created using a GridView in the earlier Master/Detail Filtering With a DropDownList tutorial, begins by showing some set of "master" records. 그러면 사용자가 마스터 레코드 중 하나로 드릴 다운 하 여 해당 마스터 레코드의 "세부 정보"를 볼 수 있습니다.The user can then drill down into one of the master records, thereby viewing that master record's "details." 마스터/세부 정보 보고서는 일 대 다 관계를 시각화 하 고 특히 "와이드" 테이블 (열이 많은 테이블)에서 자세한 정보를 표시 하는 데 적합 합니다.Master/detail reports are an ideal choice for visualizing one-to-many relationships and for displaying detailed information from particularly "wide" tables (ones that have a lot of columns). 이전 자습서에서 GridView 및 DetailsView 컨트롤을 사용 하 여 마스터/세부 보고서를 구현 하는 방법을 살펴보았습니다.We've explored how to implement master/detail reports using the GridView and DetailsView controls in previous tutorials. 이 자습서 및 다음 두 가지에서는 이러한 개념을 다시 확인할 것 이지만 DataList 및 Repeater 컨트롤을 대신 사용 하는 방법에 중점을 둡니다.In this tutorial and the next two, we'll reexamine these concepts, but focus on using DataList and Repeater controls instead.

이 자습서에서는 "details" 레코드가 DataList에 표시 된 "마스터" 레코드를 포함 하는 DropDownList을 사용 하는 방법을 살펴보겠습니다.In this tutorial, we'll look at using a DropDownList to contain the "master" records, with the "details" records displayed in a DataList.

1 단계: 마스터/세부 정보 자습서 웹 페이지 추가Step 1: Adding the Master/Detail Tutorial Web Pages

이 자습서를 시작 하기 전에 먼저이 자습서에 필요한 폴더 및 ASP.NET 페이지와 DataList 및 Repeater 컨트롤을 사용 하 여 마스터/세부 정보 보고서를 처리 하는 다음 두 페이지를 추가 해 보겠습니다.Before we start this tutorial, let's first take a moment to add the folder and ASP.NET pages we'll need for this tutorial and the next two dealing with master/detail reports using the DataList and Repeater controls. DataListRepeaterFiltering이라는 프로젝트에서 새 폴더를 만들어 시작 합니다.Start by creating a new folder in the project named DataListRepeaterFiltering. 그런 다음이 폴더에 다음 5 개의 ASP.NET 페이지를 추가 하 여 마스터 페이지 Site.master를 사용 하도록 구성 된 페이지를 모두 구성 합니다.Next, add the following five ASP.NET pages to this folder, having all of them configured to use the master page Site.master:

  • Default.aspx
  • FilterByDropDownList.aspx
  • CategoryListMaster.aspx
  • ProductsForCategoryDetails.aspx
  • CategoriesAndProducts.aspx

DataListRepeaterFiltering 폴더를 만들고 자습서 ASP.NET 페이지를 추가 합니다.

그림 1: DataListRepeaterFiltering 폴더 만들기 및 자습서 ASP.NET 페이지 추가Figure 1: Create a DataListRepeaterFiltering Folder and Add the Tutorial ASP.NET Pages

그런 다음 Default.aspx 페이지를 열고 SectionLevelTutorialListing.ascx 사용자 정의 컨트롤을 UserControls 폴더에서 디자인 화면으로 끌어 옵니다.Next, open the Default.aspx page and drag the SectionLevelTutorialListing.ascx User Control from the UserControls folder onto the Design surface. 마스터 페이지 및 사이트 탐색 자습서에서 만든이 사용자 정의 컨트롤은 사이트 맵을 열거 하 고 현재 섹션의 자습서를 글머리 기호 목록에 표시 합니다.This User Control, which we created in the Master Pages and Site Navigation tutorial, enumerates the site map and displays the tutorials from the current section in a bulleted list.

SectionLevelTutorialListing 사용자 정의 컨트롤을 Default.aspx에 추가 Add the SectionLevelTutorialListing.ascx User Control to Default.aspx

그림 2: Default.aspxSectionLevelTutorialListing.ascx 사용자 정의 컨트롤 추가 (전체 크기 이미지를 보려면 클릭)Figure 2: Add the SectionLevelTutorialListing.ascx User Control to Default.aspx (Click to view full-size image)

글머리 기호 목록에 만들 마스터/세부 자습서를 표시 하려면 사이트 맵에 추가 해야 합니다.In order to have the bulleted list display the master/detail tutorials we'll be creating, we need to add them to the site map. Web.sitemap 파일을 열고 "DataList 및 Repeater로 데이터 표시" 사이트 맵 노드 마크업을 사용 하 여 다음 태그를 추가 합니다.Open the Web.sitemap file and add the following markup after the "Displaying Data with the DataList and Repeater" site map node markup:

<siteMapNode
    title="Master/Detail Reports with the DataList and Repeater"
    description="Samples of Reports that Use the DataList and Repeater Controls"
    url="~/DataListRepeaterFiltering/Default.aspx">
 
    <siteMapNode
        title="Filter by Drop-Down List"
        description="Filter results using a drop-down list."
        url="~/DataListRepeaterFiltering/FilterByDropDownList.aspx" />
 
    <siteMapNode
        title="Master/Detail Across Two Pages"
        description="Master records on one page, detail records on another."
        url="~/DataListRepeaterFiltering/CategoryListMaster.aspx" />
 
    <siteMapNode
        title="Maser/Detail on One Page"
        description="Master records in the left column, details on the right,
                      both on the same page."
        url="~/DataListRepeaterFiltering/CategoriesAndProducts.aspx" />
 
</siteMapNode>

새 ASP.NET 페이지를 포함 하도록 사이트 맵 업데이트

그림 3: 새 ASP.NET 페이지를 포함 하도록 사이트 맵 업데이트Figure 3: Update the Site Map to Include the New ASP.NET Pages

2 단계: DropDownList에 범주 표시Step 2: Displaying the Categories in a DropDownList

마스터/세부 정보 보고서에는 선택한 목록 항목의 제품이 DataList의 페이지 아래쪽에 표시 되는 DropDownList 범주가 나열 됩니다.Our master/detail report will list the categories in a DropDownList, with the selected list item's products displayed further down in the page in a DataList. 앞서 첫 번째 작업은 범주를 DropDownList에 표시 하는 것입니다.The first task ahead of us, then, is to have the categories displayed in a DropDownList. 먼저 DataListRepeaterFiltering 폴더에서 FilterByDropDownList.aspx 페이지를 열고 도구 상자의 DropDownList를 페이지의 디자이너로 끌어옵니다.Start by opening the FilterByDropDownList.aspx page in the DataListRepeaterFiltering folder and drag a DropDownList from the Toolbox onto the page's designer. 그런 다음 DropDownList의 ID 속성을 Categories로 설정 합니다.Next, set the DropDownList's ID property to Categories. DropDownList의 스마트 태그에서 데이터 소스 선택 링크를 클릭 하 고 CategoriesDataSource라는 새 ObjectDataSource를 만듭니다.Click on the Choose Data Source link from the DropDownList's smart tag and create a new ObjectDataSource named CategoriesDataSource.

새 ObjectDataSource 명명 된 범주 Datasource를 추가 Add a New ObjectDataSource Named CategoriesDataSource

그림 4: 이름이 CategoriesDataSource 새 ObjectDataSource 추가 (전체 크기 이미지를 보려면 클릭)Figure 4: Add a New ObjectDataSource Named CategoriesDataSource (Click to view full-size image)

CategoriesBLL 클래스의 GetCategories() 메서드를 호출 하도록 새 ObjectDataSource를 구성 합니다.Configure the new ObjectDataSource such that it invokes the CategoriesBLL class's GetCategories() method. ObjectDataSource를 구성한 후에는 DropDownList에 표시 되어야 하는 데이터 원본 필드와 각 목록 항목의 값으로 연결 해야 하는 데이터 원본 필드를 지정 해야 합니다.After configuring the ObjectDataSource we still need to specify what data source field should be displayed in the DropDownList and which one should be associated as the value for each list item. CategoryName 필드를 표시 하 고 각 목록 항목의 값으로 CategoryID 합니다.Have the CategoryName field as the display and CategoryID as the value for each list item.

DropDownList에서 범주 필드를 표시 하 고 CategoryID를 값으로 사용 Have the DropDownList Display the CategoryName Field and Use CategoryID as the Value

그림 5: DropDownList에 CategoryName 필드가 표시 되 고 CategoryID 값으로 사용 (전체 크기 이미지를 보려면 클릭)Figure 5: Have the DropDownList Display the CategoryName Field and Use CategoryID as the Value (Click to view full-size image)

이 시점에서 Categories 테이블의 레코드를 사용 하 여 채워진 DropDownList 컨트롤이 있습니다 (약 6 초 후에 수행 됨).At this point we have a DropDownList control that's populated with the records from the Categories table (all accomplished in about six seconds). 그림 6에서는 브라우저를 통해 볼 때의 진행률을 보여 줍니다.Figure 6 shows our progress thus far when viewed through a browser.

드롭다운 목록에서 현재 범주를 합니다.A Drop-Down Lists the Current Categories

그림 6: 드롭다운 목록에 현재 범주가 나열 됩니다 (전체 크기 이미지를 보려면 클릭).Figure 6: A Drop-Down Lists the Current Categories (Click to view full-size image)

2 단계: 제품 DataList 추가Step 2: Adding the Products DataList

마스터/세부 정보 보고서의 마지막 단계는 선택한 범주와 관련 된 제품을 나열 하는 것입니다.The last step in our master/detail report is to list the products associated with the selected category. 이를 수행 하려면 페이지에 DataList를 추가 하 고 ProductsByCategoryDataSource이라는 새 ObjectDataSource를 만듭니다.To accomplish this, add a DataList to the page and create a new ObjectDataSource named ProductsByCategoryDataSource. ProductsByCategoryDataSource 컨트롤이 ProductsBLL 클래스의 GetProductsByCategoryID(categoryID) 메서드에서 데이터를 검색 하도록 합니다.Have the ProductsByCategoryDataSource control retrieve its data from the ProductsBLL class's GetProductsByCategoryID(categoryID) method. 이 마스터/세부 보고서는 읽기 전용 이므로 삽입, 업데이트 및 삭제 탭에서 (없음) 옵션을 선택 합니다.Since this master/detail report is read-only, choose the (None) option in the INSERT, UPDATE, and DELETE tabs.

GetProductsByCategoryID (categoryID) 메서드를 선택 합니다.Select the GetProductsByCategoryID(categoryID) Method

그림 7: GetProductsByCategoryID(categoryID) 방법 선택 (전체 크기 이미지를 보려면 클릭)Figure 7: Select the GetProductsByCategoryID(categoryID) Method (Click to view full-size image)

다음을 클릭 한 후 ObjectDataSource 마법사는 GetProductsByCategoryID(categoryID) 메서드의 categoryID 매개 변수에 대 한 값의 원본을 알려 주는 메시지를 표시 합니다.After clicking Next, the ObjectDataSource wizard prompts us for the source of the value for the GetProductsByCategoryID(categoryID) method's categoryID parameter. 선택한 categories DropDownList 항목의 값을 사용 하려면 매개 변수 소스를 제어 하 고 ControlID를 Categories설정 합니다.To use the value of the selected categories DropDownList item set the Parameter source to Control and the ControlID to Categories.

categoryID 매개 변수를 DropDownList 범주의 값으로 설정 합니다.Set the categoryID Parameter to the Value of the Categories DropDownList

그림 8: categoryID 매개 변수를 Categories DropDownList 값으로 설정 (전체 크기 이미지를 보려면 클릭)Figure 8: Set the categoryID Parameter to the Value of the Categories DropDownList (Click to view full-size image)

데이터 소스 구성 마법사가 완료 되 면 Visual Studio에서 각 데이터 필드의 이름과 값을 표시 하는 DataList에 대 한 ItemTemplate를 자동으로 생성 합니다.Upon completing the Configure Data Source wizard, Visual Studio will automatically generate an ItemTemplate for the DataList that displays the name and value of each data field. DataList를 개선 하 여 각 항목 사이에 <hr> 요소를 삽입 하는 SeparatorTemplate와 함께 제품의 이름, 범주, 공급자, 단위당 수량 및 가격만 표시 하는 ItemTemplate를 대신 사용 하도록 하겠습니다.Let's enhance the DataList to instead use an ItemTemplate that displays just the product's name, category, supplier, quantity per unit, and price along with a SeparatorTemplate that injects an <hr> element between each item. DataList 및 Repeater 컨트롤 을 사용 하 여 데이터 표시 자습서의 예제에서 ItemTemplate를 사용 하지만, 가장 시각적으로 멋진 템플릿 태그를 자유롭게 사용할 수 있습니다.I'm going to use the ItemTemplate from an example in the Displaying Data with the DataList and Repeater Controls tutorial, but feel free to use whatever template markup you find most visually appealing.

이러한 변경을 수행한 후에는 DataList와 해당 ObjectDataSource의 태그가 다음과 같이 표시 됩니다.After making these changes, your DataList and its ObjectDataSource's markup should look similar to the following:

<asp:DataList ID="DataList1" runat="server" DataKeyField="ProductID"
    DataSourceID="ProductsByCategoryDataSource" EnableViewState="False">
    <ItemTemplate>
        <h4>
            <asp:Label ID="ProductNameLabel" runat="server"
                Text='<%# Eval("ProductName") %>' />
        </h4>
        <table border="0">
            <tr>
                <td class="ProductPropertyLabel">Category:</td>
                <td><asp:Label ID="CategoryNameLabel" runat="server"
                    Text='<%# Eval("CategoryName") %>' /></td>
                <td class="ProductPropertyLabel">Supplier:</td>
                <td><asp:Label ID="SupplierNameLabel" runat="server"
                    Text='<%# Eval("SupplierName") %>' /></td>
            </tr>
            <tr>
                <td class="ProductPropertyLabel">Qty/Unit:</td>
                <td><asp:Label ID="QuantityPerUnitLabel" runat="server"
                    Text='<%# Eval("QuantityPerUnit") %>' /></td>
                <td class="ProductPropertyLabel">Price:</td>
                <td><asp:Label ID="UnitPriceLabel" runat="server"
                    Text='<%# Eval("UnitPrice", "{0:C}") %>' /></td>
            </tr>
        </table>
    </ItemTemplate>
    <SeparatorTemplate>
        <hr />
    </SeparatorTemplate>
</asp:DataList>
 
<asp:ObjectDataSource ID="ProductsByCategoryDataSource" runat="server"
    OldValuesParameterFormatString="original_{0}"
    SelectMethod="GetProductsByCategoryID" TypeName="ProductsBLL">
    <SelectParameters>
        <asp:ControlParameter ControlID="Categories" Name="categoryID"
            PropertyName="SelectedValue" Type="Int32" />
    </SelectParameters>
</asp:ObjectDataSource>

잠시 후 브라우저에서 진행 상황을 확인해 보세요.Take a moment to check out our progress in a browser. 페이지를 처음 방문 하면 선택 된 범주 (음료)에 속하는 제품이 표시 됩니다 (그림 9에 표시 된 것 처럼). 그러나 DropDownList를 변경 해도 데이터가 업데이트 되지 않습니다.When first visiting the page, those products belonging to the selected category (Beverages) are displayed (as shown in Figure 9), but changing the DropDownList doesn't update the data. 이는 DataList를 업데이트 하기 위해 포스트백이 수행 되어야 하기 때문입니다.This is because a postback must occur for the DataList to update. 이렇게 하려면 DropDownList의 AutoPostBack 속성을 true로 설정 하거나 페이지에 단추 웹 컨트롤을 추가 합니다.To accomplish this we can either set the DropDownList's AutoPostBack property to true or add a Button Web control to the page. 이 자습서에서는 DropDownList의 AutoPostBack 속성을 true으로 설정 했습니다.For this tutorial, I've opted to set the DropDownList's AutoPostBack property to true.

그림 9와 10은 마스터/세부 보고서를 실행 하는 방법을 보여 줍니다.Figures 9 and 10 illustrate the master/detail report in action.

페이지를 처음 방문할 때 음료 제품이 표시 됩니다.When First Visiting the Page, the Beverage Products are Displayed

그림 9: 페이지를 처음 방문할 때 음료 제품이 표시 됩니다 (전체 크기 이미지를 보려면 클릭).Figure 9: When First Visiting the Page, the Beverage Products are Displayed (Click to view full-size image)

새 제품 (생성)을 선택 자동으로 포스트백이 발생 하 고 DataList가 업데이트 됩니다.Selecting a New Product (Produce) Automatically Causes a PostBack, Updating the DataList

그림 10: 새 제품 (생성)을 선택 하면 자동으로 포스트백이 발생 하 고 DataList (전체 크기의 이미지를 보려면 클릭)가 업데이트 됩니다.Figure 10: Selecting a New Product (Produce) Automatically Causes a PostBack, Updating the DataList (Click to view full-size image)

"--범주 선택--" 목록 항목 추가Adding a "-- Choose a Category --" List Item

FilterByDropDownList.aspx 페이지를 처음 방문 하면 범주 DropDownList의 첫 번째 목록 항목 (음료)이 기본적으로 선택 되어 DataList의 음료 제품이 표시 됩니다.When first visiting the FilterByDropDownList.aspx page the categories DropDownList's first list item (Beverages) is selected by default, showing the beverage products in the DataList. DropDownList 자습서를 사용 하 여 마스터/세부 정보 필터링 에서 기본적으로 선택 된 DropDownList에 "--범주 선택--" 옵션을 추가 하 고 선택 하면 데이터베이스의 모든 제품을 표시 했습니다.In the Master/Detail Filtering With a DropDownList tutorial we added a "-- Choose a Category --" option to the DropDownList that was selected by default and, when selected, displayed all of the products in the database. 이러한 접근 방식은 각 제품 행이 적은 양의 화면 부동산을 차지 하는 경우 GridView에 제품을 나열할 때 관리 하기 쉽습니다.Such an approach was manageable when listing the products in a GridView, as each product row took up a small amount of screen real estate. 그러나 DataList를 사용 하는 경우 각 제품 정보는 훨씬 큰 화면 청크를 사용 합니다.With the DataList, however, each product's information consumes a much larger chunk of the screen. 계속 해 서 "--범주 선택--" 옵션을 추가 하 고 기본적으로 선택 되어 있지만 선택 시 모든 제품을 표시 하는 대신 제품을 표시 하지 않도록 구성 하겠습니다.Let's still add a "-- Choose a Category --" option and have it selected by default, but instead of having it show all products when selected, let's configure it so that it shows no products.

DropDownList에 새 목록 항목을 추가 하려면 속성 창로 이동 하 여 Items 속성에서 줄임표를 클릭 합니다.To add a new list item to the DropDownList, go to the Properties window and click on the ellipses in the Items property. Text "--범주 선택--"과 Value 0를 사용 하 여 새 목록 항목을 추가 합니다.Add a new list item with the Text "-- Choose a Category --" and the Value 0.

사용자 지정

그림 11: "--범주 선택--" 목록 항목 추가Figure 11: Add a "-- Choose a Category --" List Item

또는 다음 태그를 DropDownList에 추가 하 여 목록 항목을 추가할 수 있습니다.Alternatively, you can add the list item by adding the following markup to the DropDownList:

<asp:DropDownList ID="categories" runat="server" AutoPostBack="True"
    DataSourceID="CategoriesDataSource" DataTextField="CategoryName"
    DataValueField="CategoryID" EnableViewState="False">
 
    <asp:ListItem Value="0">-- Choose a Category --</asp:ListItem>
 
</asp:DropDownList>

또한 false (기본값)로 설정 되어 있고, 범주가 ObjectDataSource에서 DropDownList에 바인딩되면, 수동으로 추가 된 목록 항목을 덮어쓸 수 있으므로 DropDownList 컨트롤의 AppendDataBoundItemstrue으로 설정 해야 합니다.Additionally, we need to set the DropDownList control's AppendDataBoundItems to true because if it's set to false (the default), when the categories are bound to the DropDownList from the ObjectDataSource they'll overwrite any manually-added list items.

AppendDataBoundItems 속성을 True로 설정 합니다.

그림 12: AppendDataBoundItems 속성을 True로 설정Figure 12: Set the AppendDataBoundItems Property to True

"--범주 선택--" 목록 항목에 대해 0 값을 선택 하는 이유는 시스템에 0값이 없기 때문입니다. 따라서 "--범주 선택--" 목록 항목을 선택할 때 제품 레코드가 반환 되지 않습니다.The reason we chose the value 0 for the "-- Choose a Category --" list item is because there are no categories in the system with a value of 0, hence no product records will be returned when the "-- Choose a Category --" list item is selected. 이를 확인 하려면 잠시 후 브라우저를 통해 페이지를 방문 하세요.To confirm this, take a moment to visit the page through a browser. 그림 13에 표시 된 것 처럼 페이지를 처음 볼 때 "--범주 선택--" 목록 항목을 선택 하면 제품이 표시 되지 않습니다.As Figure 13 shows, when initially viewing the page the "-- Choose a Category --" list item is selected and no products are displayed.

When the

그림 13: "--범주 선택--" 목록 항목을 선택 하면 제품이 표시 되지 않습니다 (전체 크기 이미지를 보려면 클릭).Figure 13: When the "-- Choose a Category --" List Item is Selected, No Products are Displayed (Click to view full-size image)

"--범주 선택--" 옵션을 선택한 경우에는 모든 제품을 표시 하는 대신 -1 값을 사용 합니다.If you'd rather display all of the products when the "-- Choose a Category --" option is selected, use a value of -1 instead. Astute reader는 DropDownList를 사용 하 여 마스터/세부 정보 필터링 으로 돌아갈 때 -1categoryID 값이 전달 되 면 모든 제품 레코드가 반환 되도록 ProductsBLL 클래스의 GetProductsByCategoryID(categoryID) 메서드를 업데이트 했습니다.The astute reader will recall that back in the Master/Detail Filtering With a DropDownList tutorial we updated the ProductsBLL class's GetProductsByCategoryID(categoryID) method so that if a categoryID value of -1 was passed in, all product records were returned.

요약Summary

계층적으로 관련 된 데이터를 표시 하는 경우 사용자가 계층의 맨 위에서 데이터를 확인 하 고 세부 정보로 드릴 다운할 수 있는 마스터/세부 정보 보고서를 사용 하 여 데이터를 표시 하는 것이 좋습니다.When displaying hierarchically-related data, it often helps to present the data using master/detail reports, from which the user can start perusing the data from the top of the hierarchy and drill down into details. 이 자습서에서는 선택한 범주의 제품을 보여 주는 간단한 마스터/세부 정보 보고서 작성을 검토 했습니다.In this tutorial we examined building a simple master/detail report showing a selected category's products. 이는 범주 목록에 대해 DropDownList을 사용 하 고 선택한 범주에 속한 제품에 대해 DataList를 사용 하 여 수행 되었습니다.This was accomplished by using a DropDownList for the list of categories and a DataList for the products belonging to the selected category.

다음 자습서에서는 두 페이지에서 마스터 및 세부 정보 레코드를 분리 하는 방법을 살펴보겠습니다.In the next tutorial we'll look at separating the master and details records across two pages. 첫 번째 페이지에는 세부 정보를 볼 수 있는 링크가 포함 된 "마스터" 레코드 목록이 표시 됩니다.In the first page, a list of "master" records will be displayed, with a link to view the details. 링크를 클릭 하면 사용자가 두 번째 페이지로 whisk 선택한 마스터 레코드에 대 한 세부 정보가 표시 됩니다.Clicking on the link will whisk the user to the second page, which will display the details for the selected master record.

행복 한 프로그래밍Happy Programming!

저자 정보About the Author

Scott Mitchell(7 개의 ASP/ASP. NET books 및 4GuysFromRolla.com창립자)은 1998부터 Microsoft 웹 기술을 사용 하 여 작업 했습니다.Scott Mitchell, author of seven ASP/ASP.NET books and founder of 4GuysFromRolla.com, has been working with Microsoft Web technologies since 1998. Scott은 독립 컨설턴트, 강사 및 기록기로 작동 합니다.Scott works as an independent consultant, trainer, and writer. 최신 책은 24 시간 이내에 ASP.NET 2.0을 sams teach yourself것입니다.His latest book is Sams Teach Yourself ASP.NET 2.0 in 24 Hours. mitchell@4GuysFromRolla.com에 도달할 수 있습니다 .He can be reached at mitchell@4GuysFromRolla.com. 또는 블로그를 통해 http://ScottOnWriting.NET에서 찾을 수 있습니다.or via his blog, which can be found at http://ScottOnWriting.NET.

특별 해 주셔서 감사 합니다.Special Thanks To…

이 자습서 시리즈는 많은 유용한 검토자가 검토 했습니다.This tutorial series was reviewed by many helpful reviewers. 이 자습서의 리드 검토자는 Randy Schmidt입니다.Lead reviewer for this tutorial was Randy Schmidt. 예정 된 MSDN 문서를 검토 하는 데 관심이 있나요?Interested in reviewing my upcoming MSDN articles? 그렇다면mitchell@4GuysFromRolla.com에서 줄을 삭제 합니다.If so, drop me a line at mitchell@4GuysFromRolla.com.