To reproduce: public Form1() { InitializeComponent(); DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("ParentId", typeof(int)); dt.Columns.Add("IsActive", typeof(bool)); dt.Columns.Add("Title", typeof(string)); for (int i = 1; i < 6; i++) { dt.Rows.Add(i, 0, i % 2 == 0, "Title" + i); } Random rand = new Random(); int parentIndex = 0; for (int i = 6; i < 30; i++) { parentIndex = rand.Next(1, 6); dt.Rows.Add(i, parentIndex, i % 2 == 0, "Title" + i); } radGridView1.DataSource = dt; radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill; radGridView1.Relations.AddSelfReference(radGridView1.MasterTemplate, "Id", "ParentId"); GroupDescriptor descriptor = new GroupDescriptor(); descriptor.GroupNames.Add("Title", System.ComponentModel.ListSortDirection.Ascending); radGridView1.GroupDescriptors.Add(descriptor); this.radGridView1.AllowSearchRow = true; }