Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

How to: Create Split Presentation and Customize Embedded Grid Controls

  • 4 minutes to read

This example demonstrates how to create a GridSplitContainer in code, enable the Split View feature and customize the embedded Grid Controls being split.

CreateGridSplitContainer_Ex

View Example

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Columns;
using System.Collections;

namespace CreateGridSplitContainer {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {

            IList dataSource = CreateDataSource();

            GridSplitContainer gridSplitContainer = new GridSplitContainer();
            gridSplitContainer.Parent = this;
            gridSplitContainer.Location = new Point(0, 0);
            gridSplitContainer.Size = new Size(350, 300);
            gridSplitContainer.Initialize();
            gridSplitContainer.SplitViewCreated += new EventHandler(gridSplitContainer_SplitViewCreated);

            // Customize the first grid control.
            GridControl grid = gridSplitContainer.Grid;
            GridView view = grid.MainView as GridView;
            // Specify a data source.
            grid.DataSource = dataSource;
            // Resize columns according to their values.
            view.BestFitColumns();
            // Locate a row containing a specific value.
            view.FocusedRowHandle = view.LocateByValue("Country", "UK");

            // Display a splitter and second grid control.
            gridSplitContainer.ShowSplitView();

            // Customize the second grid control.
            GridControl secondGrid = gridSplitContainer.SplitChildGrid;
            GridView secondView = secondGrid.MainView as GridView;
            // Locate a row containing a specific value.
            secondView.FocusedRowHandle = secondView.LocateByValue("Country", "Sweden");
        }

        private void gridSplitContainer_SplitViewCreated(object sender, EventArgs e) {
            // Display the Embedded Navigator for the second grid control 
            // in the horizontally oriented Split View.
            GridSplitContainer gsc = sender as GridSplitContainer;
            if (!gsc.Horizontal)
                gsc.SplitChildGrid.UseEmbeddedNavigator = true;
        }


        private IList CreateDataSource() {
            List<MyRecord> list = new List<MyRecord>();
            list.Add(new MyRecord(1, "Rene Phillips", "USA"));
            list.Add(new MyRecord(2, "Robert McKinsey", "UK"));
            list.Add(new MyRecord(3, "Christina Berglund", "Sweden"));
            list.Add(new MyRecord(4, "Martín Sommer", "Spain"));
            list.Add(new MyRecord(5, "Laurence Lebihan", "France"));
            list.Add(new MyRecord(6, "Elizabeth Lincoln", "Canada"));
            list.Add(new MyRecord(7, "Steven Baum", "USA"));
            return list;
        }


    }

    public class MyRecord {
        public int ID { get; set; }
        public string Country { get; set; }
        public string Name { get; set; }
        public MyRecord(int id, string name, string country) {
            ID = id;
            Name = name;
            Country = country;
        }
    }
}