public static IEnumerable <DataRow> GetChildDataRows(GridViewGroupRowInfo groupRow)
        {
            if (groupRow == null)
            {
                throw new ArgumentNullException("groupRow");
            }

            foreach (var childRow in groupRow.ChildRows)
            {
                if (childRow is GridViewGroupRowInfo)
                {
                    foreach (var sub in GetChildDataRows((GridViewGroupRowInfo)childRow))
                    {
                        yield return(sub);
                    }
                }
                else
                {
                    var dataRowView = childRow.DataBoundItem as DataRowView;
                    if (dataRowView != null)
                    {
                        yield return(dataRowView.Row);
                    }
                }
            }
        }
Esempio n. 2
0
        public override void SetContent()
        {
            base.SetContent();

            this.ShowSummaryCells = !this.RowInfo.Group.IsExpanded || this.RowInfo.Group.Groups.Count > 0;

            GridViewGroupRowInfo rowInfo = (GridViewGroupRowInfo)this.RowInfo;

            if (rowInfo.Parent is GridViewGroupRowInfo && !((GridViewGroupRowInfo)rowInfo.Parent).IsExpanded)
            {
                return;
            }

            Dictionary <string, string> values = this.GetSummaryValues();
            int index = 0;

            foreach (KeyValuePair <string, string> column in values)
            {
                SummaryCellElement element = ((SummaryCellElement)this.stack.Children[index++]);

                if (this.ViewTemplate.Columns[column.Key].IsGrouped)
                {
                    element.Visibility = Telerik.WinControls.ElementVisibility.Collapsed;
                }
                else
                {
                    element.Visibility = Telerik.WinControls.ElementVisibility.Visible;
                    element.Text       = column.Value;
                }
            }
        }
Esempio n. 3
0
        void radGridView_ViewRowFormatting(object sender, RowFormattingEventArgs e)
        {
            GridViewGroupRowInfo groupRow = e.RowElement.RowInfo as GridViewGroupRowInfo;

            if (groupRow != null && groupRow.Group.Key is int)
            {
                e.RowElement.BackColor = Color.FromArgb((int)groupRow.Group.Key);
            }
        }
Esempio n. 4
0
        private void Collapse(GridViewGroupRowInfo row)
        {
            foreach (GridViewRowInfo childRow in row.ChildRows)
            {
                GridViewGroupRowInfo groupRow = childRow as GridViewGroupRowInfo;

                if (groupRow != null)
                {
                    groupRow.IsExpanded = false;
                    Collapse(groupRow);
                }
            }
        }
        private void Toggle(GridViewGroupRowInfo groupRow, bool state)
        {
            groupRow.Tag = state;
            foreach (GridViewRowInfo row in groupRow.ChildRows)
            {
                GridViewGroupRowInfo g = row as GridViewGroupRowInfo;
                if (g != null)
                {
                    Toggle(g, state);
                }

                row.Cells["Discontinued"].Value = state;
            }
        }
Esempio n. 6
0
 protected override void SetCurrent()
 {
   GridViewGroupRowInfo hierarchyRow = this.HierarchyRow as GridViewGroupRowInfo;
   if (hierarchyRow == null)
     base.SetCurrent();
   else if (this.Index < hierarchyRow.TopSummaryRows.Count)
     this.Current = (GridViewRowInfo) hierarchyRow.TopSummaryRows[this.Index];
   else if (this.Index < hierarchyRow.TopSummaryRows.Count + hierarchyRow.ChildRows.Count)
   {
     this.Current = hierarchyRow.ChildRows[this.Index - hierarchyRow.TopSummaryRows.Count];
   }
   else
   {
     if (this.Index >= this.RowsCount)
       return;
     this.Current = (GridViewRowInfo) hierarchyRow.BottomSummaryRows[this.Index - (hierarchyRow.TopSummaryRows.Count + hierarchyRow.ChildRows.Count)];
   }
 }
Esempio n. 7
0
 private void radGridView1_CellValueChanged(object sender, GridViewCellEventArgs e)
 {
     if (e.Column.Name == "Discontinued")
     {
         GridViewGroupRowInfo parentGroup = e.Row.Parent as GridViewGroupRowInfo;
         if (parentGroup != null)
         {
             bool atLeastOneOff = false;
             foreach (GridViewRowInfo row in parentGroup.ChildRows)
             {
                 if ((bool)row.Cells["Discontinued"].Value == false)
                 {
                     atLeastOneOff = true;
                     break;
                 }
             }
             parentGroup.Tag = !atLeastOneOff;
         }
     }
 }
        private void checkBoxElement_CheckStateChanged(object sender, EventArgs e)
        {
            //update child rows
            GridViewGroupRowInfo group = this.RowInfo as GridViewGroupRowInfo;

            group.Tag = checkBoxElement.Checked;
            this.GridViewElement.GridControl.BeginUpdate();
            int scrollValue = this.GridControl.TableElement.VScrollBar.Value;

            foreach (GridViewRowInfo row in this.RowInfo.ChildRows)
            {
                GridViewGroupRowInfo groupRow = row as GridViewGroupRowInfo;
                if (groupRow != null)
                {
                    Toggle(groupRow, checkBoxElement.Checked);
                }

                row.Cells["Discontinued"].Value = checkBoxElement.Checked;
            }
            this.GridViewElement.GridControl.EndUpdate();
            this.GridViewElement.GridControl.TableElement.VScrollBar.Value = scrollValue;
        }
Esempio n. 9
0
 public GroupRowTraverser(GridViewGroupRowInfo hierarchyRow)
   : base((GridViewRowInfo) hierarchyRow)
 {
 }