Практическое руководство. Создание основных или подробных списков с помощью элемента управления DataGrid в Windows Forms

Обновлен: Ноябрь 2007

59y45529.alert_note(ru-ru,VS.90).gifПримечание.

Элемент управления DataGridView заменяет элемент управления DataGrid и расширяет его функциональные возможности; однако при необходимости элемент управления DataGrid можно сохранить для обратной совместимости и использования в будущем. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms.

Если объект DataSet содержит набор связанных таблиц, для представления данных в формате сводки/основных сведений можно использовать два элемента управления DataGrid. В этом случае один элемент управления DataGrid является основной сеткой, а второй – сеткой сведений. При выборе записи в основном списке все связанные дочерние записи отображаются в списке сведений. Например, если в объекте DataSet находятся таблица Customers и связанная таблица Orders, таблицу Customers можно указать в качестве основной сетки, а таблицу Orders – в качестве сетки сведений. При выборе заказчика в основной сетке все заказы, связанные с ним в таблице Orders, отобразятся в сетке сведений.

Чтобы настроить связь сводки с основными сведениями программным образом

  1. Создайте два новых элемента управления DataGrid и задайте их свойства.

  2. Добавьте таблицы в набор данных.

  3. Объявите переменную типа DataRelation для представления создаваемой связи.

  4. Создайте экземпляр связи, указав ее имя и задав таблицу, столбец и элемент, который будет связывать обе таблицы.

  5. Добавьте связь в коллекцию Relations объекта DataSet.

  6. Используйте метод SetDataBinding у DataGrid для привязки каждой сетки к DataSet.

    В следующем примере показано, как настроить связь основных сведений/сводки между таблицами Customers и Orders в ранее созданном объекте DataSet (ds).

    Dim myDataRelation As DataRelation
    myDataRelation = New DataRelation _
       ("CustOrd", ds.Tables("Customers").Columns("CustomerID"), _
       ds.Tables("Orders").Columns("CustomerID"))
    ' Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation)
    GridOrders.SetDataBinding(ds, "Customers")
    GridDetails.SetDataBinding(ds, "Customers.CustOrd")
    
    DataRelation myDataRelation;
    myDataRelation = new DataRelation("CustOrd", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds.Relations.Add(myDataRelation);
    GridOrders.SetDataBinding(ds,"Customers");
    GridDetails.SetDataBinding(ds,"Customers.CustOrd");
    
    DataRelation^ myDataRelation;
    myDataRelation = gcnew DataRelation("CustOrd",
       ds->Tables["Customers"]->Columns["CustomerID"],
       ds->Tables["Orders"]->Columns["CustomerID"]);
    // Add the relation to the DataSet.
    ds->Relations->Add(myDataRelation);
    GridOrders->SetDataBinding(ds, "Customers");
    GridDetails->SetDataBinding(ds, "Customers.CustOrd");
    

См. также

Задачи

Практическое руководство. Привязка элемента управления DataGrid в Windows Forms к источнику данных

Ссылки

Общие сведения об элементе управления DataGrid (Windows Forms)

Другие ресурсы

Элемент управления DataGrid (Windows Forms)