static void RecreateSummaryColumns(ZSummaryGridView DGV_) { DataGridView SummaryView = DGV_.SummaryView; DataTable SummaryDT = null; SummaryView.DataSource = null; SummaryDT = new DataTable(); SummaryView.Columns.Clear(); SummaryDT.Rows.Clear(); SummaryDT.Columns.Clear(); foreach (DataGridViewColumn c in DGV_.Columns) { DataGridViewColumn NCol = new DataGridViewTextBoxColumn(); NCol.HeaderText = c.HeaderText; NCol.DataPropertyName = c.DataPropertyName; NCol.Visible = c.Visible; NCol.Width = c.Width; NCol.FillWeight = c.FillWeight; // NCol.CellTemplate = c.CellTemplate; SummaryView.Columns.Add(NCol); SummaryDT.Columns.Add(c.DataPropertyName, typeof(System.String)); } SummaryDT.Rows.Add(); SummaryView.DataSource = SummaryDT; SummaryView.Visible = true; DGV_.CalculateSummary(); }
public static void AddSummary(ZSummaryGridView DGV_) { //Create new panel var CurrIndex = DGV_.Parent.Controls.IndexOf(DGV_); List <ZColumnListIndex> ColumnListIndex_ = new List <ZColumnListIndex>(); foreach (DataGridViewColumn c in DGV_.Columns) { ColumnListIndex_.Add(new ZColumnListIndex { ColumnName = c.DataPropertyName, ColumnIndex = c.Index, ColumnVisible = c.Visible }); } Panel Panel_ = new Panel(); Panel_.Dock = DGV_.Dock; Panel_.Top = DGV_.Top; Panel_.Left = DGV_.Left; Panel_.Height = DGV_.Height; Panel_.Width = DGV_.Width; DGV_.Parent.Controls.Add(Panel_); Panel_.Parent.Controls.SetChildIndex(Panel_, CurrIndex); DGV_.Parent = Panel_; DGV_.Dock = DockStyle.Fill; DataGridView SummaryView = null; if (DGV_.SummaryView == null) { SummaryView = new DataGridView(); } else { SummaryView = DGV_.SummaryView; } SummaryView.ColumnHeadersVisible = false; SummaryView.Dock = DockStyle.Bottom; SummaryView.AutoGenerateColumns = false; SummaryView.AllowUserToAddRows = false; SummaryView.AllowUserToDeleteRows = false; SummaryView.AllowUserToOrderColumns = false; SummaryView.AllowUserToResizeColumns = false; SummaryView.ReadOnly = true; SummaryView.ScrollBars = ScrollBars.Vertical; SummaryView.Height = 21; SummaryView.MouseClick += new MouseEventHandler(SummaryGridView_MouseClick); SummaryView.Visible = DGV_.SummaryColumns != null; DGV_.SummaryView = SummaryView; RecreateSummaryColumns(DGV_); Panel_.Controls.Add(SummaryView); //RearrangeColumns foreach (ZColumnListIndex cli_ in ColumnListIndex_.OrderBy(x => x.ColumnIndex).ToList()) { DGV_.Columns.Cast <DataGridViewColumn>().Where(c => c.DataPropertyName == cli_.ColumnName).FirstOrDefault().DisplayIndex = cli_.ColumnIndex; DGV_.SummaryView.Columns.Cast <DataGridViewColumn>().Where(c => c.DataPropertyName == cli_.ColumnName).FirstOrDefault().DisplayIndex = cli_.ColumnIndex; } }