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); } } } }
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; } } }
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); } }
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; } }
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)]; } }
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; }
public GroupRowTraverser(GridViewGroupRowInfo hierarchyRow) : base((GridViewRowInfo) hierarchyRow) { }