)
We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How to change the dropdown list of the child table with respect to the value of the parent record in WinForms GridGroupingControl?

Platform: WinForms |
Control: GridGroupingControl |
Published Date: April 30, 2011 |
Last Revised Date: February 13, 2020

Get parent record value

The value of the parent record can be retrieved through the ParentRecord.GetValue() method when the current cell is in the nested table. The following code example gets the value from a CheckBox in the parent row (the column name is check) and changes the DataSource of the ComboBoxes in the nested tables. In the QueryCellStyleInfo event, the parent record's value is retrieved as an object (o). With the object, the DataSources of the nested tables are changed.

C#

//Hooks QueryCellStyleInfo event in the Form_Load to change the DataSource for the DropDown.
this.gridGroupingControl1.QueryCellStyleInfo += gridGroupingControl1_QueryCellStyleInfo;
private void gridGroupingControl1_QueryCellStyleInfo(object sender, GridTableCellStyleInfoEventArgs e)
{
   //ChildTable had the ComboBox column named "dropCol."
   if(e.TableCellIdentity.Column != null && e.TableCellIdentity.Column.Name == "dropCol" && e.TableCellIdentity.DisplayElement is GridRecordRow)
   {
      object o = e.TableCellIdentity.DisplayElement.ParentChildTable.ParentNestedTable.ParentRecord.GetValue("check");
      this.gridGroupingControl1.TableModel.ResetVolatileData();
      //Changes the DataSource for the ComboBox by using the Parent value.
      if(o != System.DBNull.Value && o != null && o.ToString()=="True" )
      {
         e.Style.DataSource = colors;
         e.Style.CellType = "ComboBox";
      }
      else
      {
         e.Style.DataSource = shapes;              
         e.Style.CellType = "ComboBox";
      }
   }
}

VB

'Hooks QueryCellStyleInfo event in the Form_Load to change the DataSource for the DropDown.
Private Me.gridGroupingControl1.QueryCellStyleInfo += AddressOf gridGroupingControl1_QueryCellStyleInfo
Private Sub gridGroupingControl1_QueryCellStyleInfo(ByVal sender As Object, ByVal e As GridTableCellStyleInfoEventArgs)
   'ChildTable had the ComboBox column named "dropCol."
   If e.TableCellIdentity.Column IsNot Nothing AndAlso e.TableCellIdentity.Column.Name = "dropCol" AndAlso TypeOf e.TableCellIdentity.DisplayElement Is GridRecordRow Then
      Dim o As Object = e.TableCellIdentity.DisplayElement.ParentChildTable.ParentNestedTable.ParentRecord.GetValue("check")
      Me.gridGroupingControl1.TableModel.ResetVolatileData()
      'Changes the DataSource for the ComboBox by using the Parent value.
      If o IsNot System.DBNull.Value AndAlso o IsNot Nothing AndAlso o.ToString()="True" Then
         e.Style.DataSource = colors
         e.Style.CellType = "ComboBox"
      Else
         e.Style.DataSource = shapes
         e.Style.CellType = "ComboBox"
      End If
   End If
End Sub

The following screenshots show the ComboBox DataSource changed when the parent field is checked or unchecked.

Show combobox when the parent field is checked

Figure 1: ComboBox when the Parent field is “checked”

Show combobox when the parent field is unchecked

Figure 2: ComboBox when the parent field is “unchecked”

Samples:

C#: GGCGetValue-C#-636098358.zip

VB: GGCGetValue-VB-801966658.zip

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon