Xceed Grid for WinForms v4.3 Documentation
Xceed.Grid.v4.3 Assembly / Xceed.Grid Namespace / DetailGrid Class / QueryGroupKeys Event
Example


In This Topic
    QueryGroupKeys Event (DetailGrid)
    In This Topic
    Raised after a data row has been built in order to group it.
    Syntax
    'Declaration
     
    <DescriptionAttribute("Raised after a data row has been built in order to group it.")>
    <CategoryAttribute("Data")>
    Public Event QueryGroupKeys As QueryGroupKeysEventHandler
    'Usage
     
    Dim instance As DetailGrid
    Dim handler As QueryGroupKeysEventHandler
     
    AddHandler instance.QueryGroupKeys, handler
    [Description("Raised after a data row has been built in order to group it.")]
    [Category("Data")]
    public event QueryGroupKeysEventHandler QueryGroupKeys
    Event Data

    The event handler receives an argument of type QueryGroupKeysEventArgs containing data related to this event. The following QueryGroupKeysEventArgs properties provide information specific to this event.

    PropertyDescription
    Gets the data row to group.  
    Gets a list containing the group values.  
    Remarks

    When creating custom groups, the GroupBy property must be set in order for the groups which are created manually to be sorted. These groups will be sorted in the same direction as the columns whose fieldname is set in the GroupBy property.

    Example
    The following example will group all the data rows according to the value of the ShipCountry cell. All data rows whose ShipCountry cell's value begins with A to M will be grouped together while those from N to Z will be grouped together. The second group level will regroup all data rows according to the value of the ShipCity cell. All data rows whose ShipCity cell's value begin with the 2 same letters will be grouped together. For example, Mannheim and Marseille will be regrouped together.
    gridControl1.GroupTemplates.Add( New Group( "ShipCountry" ) )
    gridControl1.GroupTemplates.Add( New Group( "ShipCity" ) )
    
    AddHandler gridControl1.QueryGroupKeys, AddressOf Me.grid_QueryGroupKeys
    
    ' This method will handle the QueryGroupKeys events that are raised.
    Private Sub grid_QueryGroupKeys( ByVal sender As Object, ByVal e As QueryGroupKeysEventArgs ) Handles grid.QueryGroupKeys
    
       Try
          Dim countryValue As String = e.DataRow.Cells( "ShipCountry" ).Value.ToString().Substring( 0, 1 ).ToUpper()
          If( countryValue.CompareTo( "M" ) &gt; 0 ) Then
             e.GroupKeys( 0 ) = "N-Z"
          Else
             e.GroupKeys( 0 ) = "A-M"
          End If
       
          Dim cityValue As String = e.DataRow.Cells( "ShipCity" ).Value.ToString().Substring( 0, 2 ).ToUpper()
          e.GroupKeys( 1 ) = cityValue
       Catch exception As Exception
          MessageBox.Show( exception.ToString() )
       End Try   
    End Sub
    gridControl1.GroupTemplates.Add( new Group( "ShipCountry" ) );
    gridControl1.GroupTemplates.Add( new Group( "ShipCity" ) );
    
    gridControl1.QueryGroupKeys += new QueryGroupKeysEventHandler( this.grid_QueryGroupKeys );
    
    private void grid_QueryGroupKeys( object sender, QueryGroupKeysEventArgs e ) 
    { 
       try
       {
          string countryValue = e.DataRow.Cells[ "ShipCountry" ].Value.ToString().Substring( 0, 1 ).ToUpper();
    
          if( countryValue.CompareTo( "M" ) &gt; 0 )
          {
             e.GroupKeys[ 0 ] = "N-Z";
          }
          else
          {
             e.GroupKeys[ 0 ] = "A-M";      
          }    
    
          string cityValue = e.DataRow.Cells[ "ShipCity" ].Value.ToString().Substring( 0, 2 ).ToUpper();      
          e.GroupKeys[ 1 ] = cityValue;
       }
       catch( Exception exception )
       {
          MessageBox.Show( exception.ToString() );
       }   
    }
    Requirements

    Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

    See Also