8.9. Synchronizing Master-Detail Data in a Web Forms Application

Problem

You need to create a master-detail pair of GridView controls and synchronize them so that when you select a record in the master, the child grid is updated with the corresponding records.

Solution

Fill a DataSet with results from both tables, and create the master-detail relation before binding the GridView controls to the DataSet. Handle the SelectedIndexChanged event in the parent GridView and set the source for the child GridView to the set of related child records using the CreateChildView() method.

Follow these steps:

  1. Create a C# ASP.NET web application named MasterDetailWebFormDataGrid.

  2. Add the following controls to the Default.aspx design surface:

    • GridView named headerGridView

    • GridView named detailGridView

The completed layout of the Web Form page Default.aspx is shown in Figure 8-17.

Layout for Default.aspx in MasterDetailWebFormDataGrid solution

Figure 8-17. Layout for Default.aspx in MasterDetailWebFormDataGrid solution

The code in Default.aspx in the project MasterDetailWebFormDataGrid is shown in Example 8-17.

Example 8-17. File: Default.aspx for MasterDetailWebFormDataGrid solution

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MasterDetailWebFormDataGrid._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head ...

Get ADO.NET 3.5 Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.