Example #1
0
        /// <summary>
        /// Build the complete Sort string
        /// </summary>
        /// <returns></returns>
        private string BuildSortString()
        {
            StringBuilder sb   = new StringBuilder("");
            string        appx = "";

            foreach (string sortOrder in _sortOrderList)
            {
                DataGridViewColumn column = Columns[sortOrder];

                if (column != null)
                {
                    ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
                    if (cell != null)
                    {
                        if (cell.FilterAndSortEnabled && cell.ActiveSortType != MenuStrip.SortType.None)
                        {
                            sb.AppendFormat(appx + cell.SortString, column.DataPropertyName);
                            appx = ", ";
                        }
                    }
                }
            }

            return(sb.ToString());
        }
Example #2
0
 /// <summary>
 /// Enable or disable Filter capabilities for a DataGridViewColumn
 /// </summary>
 /// <param name="column"></param>
 /// <param name="enabled"></param>
 public void SetFilterEnabled(DataGridViewColumn column, bool enabled)
 {
     if (Columns.Contains(column))
     {
         ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
         if (cell != null)
         {
             cell.SetFilterEnabled(enabled);
         }
     }
 }
Example #3
0
 /// <summary>
 /// Set FilterDateAndTime status for a DataGridViewColumn
 /// </summary>
 /// <param name="column"></param>
 /// <param name="filterDateAndTimeEnabled"></param>
 public void SetFilterDateAndTimeEnabled(DataGridViewColumn column, bool filterDateAndTimeEnabled)
 {
     if (Columns.Contains(column))
     {
         ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
         if (cell != null)
         {
             cell.IsFilterDateAndTimeEnabled = filterDateAndTimeEnabled;
         }
     }
 }
Example #4
0
 /// <summary>
 /// Sort ASC
 /// </summary>
 public void SortDESC(DataGridViewColumn column)
 {
     if (Columns.Contains(column))
     {
         ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
         if (cell != null)
         {
             cell.SortDESC();
         }
     }
 }
        private void SetHeaderRow(ColumnHeaderSection header, CellSetting setting)
        {
            HeaderCell chCell;

            if (setting.CellInstance is RowHeaderCell)
            {
                chCell = new CornerHeaderCell();
            }
            else
            {
                chCell = new ColumnHeaderCell();
            }
            //var chCell = new ColumnHeaderCell();
            chCell.Name     = string.Format("lbl{0}", setting.Name);
            chCell.Value    = setting.Caption;
            chCell.Size     = setting.Size;
            chCell.Location = setting.Location;
            var style = new CellStyle()
            {
                TextAlign = MultiRowContentAlignment.MiddleCenter,
                Multiline = MultiRowTriState.False,
                Font      = setting.Font ?? this.Font,
            };

            chCell.Style = style;

            if (chCell is ColumnHeaderCell)
            {
                var h = chCell as ColumnHeaderCell;
                if (this.Sortable)
                {
                    h.SelectionMode = MultiRowSelectionMode.None;
                    h.SortMode      = SortMode.Automatic;
                }
                else
                {
                    h.SortMode = SortMode.NotSortable;
                }

                if (setting.SortDropDown)
                {
                    h.DropDownContextMenuStrip = GetSortDropDownContextMenuStrip();
                }
                if (setting.DropDownList != null)
                {
                    h.DropDownList = setting.DropDownList;
                }
            }

            header.Cells.Add(chCell);
        }
Example #6
0
        /// <summary>
        /// Overridden OnColumnRemoved event
        /// </summary>
        /// <param name="e"></param>
        protected override void OnColumnRemoved(DataGridViewColumnEventArgs e)
        {
            _filteredColumns.Remove(e.Column.Name);
            _filterOrderList.Remove(e.Column.Name);
            _sortOrderList.Remove(e.Column.Name);

            ColumnHeaderCell cell = e.Column.HeaderCell as ColumnHeaderCell;

            if (cell != null)
            {
                cell.SortChanged   -= cell_SortChanged;
                cell.FilterChanged -= cell_FilterChanged;
                cell.FilterPopup   -= cell_FilterPopup;
            }
            base.OnColumnRemoved(e);
        }
Example #7
0
        /// <summary>
        /// Overriden  OnColumnAdded event
        /// </summary>
        /// <param name="e"></param>
        protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
        {
            e.Column.SortMode = DataGridViewColumnSortMode.Programmatic;
            ColumnHeaderCell cell = new ColumnHeaderCell(e.Column.HeaderCell, FilterAndSortEnabled);

            cell.SortChanged     += new ColumnHeaderCellEventHandler(cell_SortChanged);
            cell.FilterChanged   += new ColumnHeaderCellEventHandler(cell_FilterChanged);
            cell.FilterPopup     += new ColumnHeaderCellEventHandler(cell_FilterPopup);
            e.Column.MinimumWidth = cell.MinimumSize.Width;
            if (ColumnHeadersHeight < cell.MinimumSize.Height)
            {
                ColumnHeadersHeight = cell.MinimumSize.Height;
            }
            e.Column.HeaderCell = cell;

            base.OnColumnAdded(e);
        }
Example #8
0
 /// <summary>
 /// Disable a Filter and Sort on a DataGridViewColumn
 /// </summary>
 /// <param name="column"></param>
 public void DisableFilterAndSort(DataGridViewColumn column)
 {
     if (Columns.Contains(column))
     {
         ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
         if (cell != null)
         {
             if (cell.FilterAndSortEnabled == true && (cell.SortString.Length > 0 || cell.FilterString.Length > 0))
             {
                 CleanFilter(true);
                 cell.FilterAndSortEnabled = false;
             }
             else
             {
                 cell.FilterAndSortEnabled = false;
             }
             _filterOrderList.Remove(column.Name);
             _sortOrderList.Remove(column.Name);
             _filteredColumns.Remove(column.Name);
         }
     }
 }
Example #9
0
        /// <summary>
        /// Enable a Filter and Sort on a DataGridViewColumn
        /// </summary>
        /// <param name="column"></param>
        public void EnableFilterAndSort(DataGridViewColumn column)
        {
            //this.DataSource = SortString;
            if (Columns.Contains(column))
            {
                ColumnHeaderCell cell = column.HeaderCell as ColumnHeaderCell;
                if (cell != null)
                {
                    if (!cell.FilterAndSortEnabled && (cell.FilterString.Length > 0 || cell.SortString.Length > 0))
                    {
                        CleanFilter(true);
                    }

                    cell.FilterAndSortEnabled = true;
                    _filteredColumns.Remove(column.Name);

                    SetFilterDateAndTimeEnabled(column, cell.IsFilterDateAndTimeEnabled);
                    SetSortEnabled(column, cell.IsSortEnabled);
                    SetFilterEnabled(column, cell.IsFilterEnabled);
                }
                else
                {
                    column.SortMode     = DataGridViewColumnSortMode.Programmatic;
                    cell                = new ColumnHeaderCell(column.HeaderCell, true);
                    cell.SortChanged   += new ColumnHeaderCellEventHandler(cell_SortChanged);
                    cell.FilterChanged += new ColumnHeaderCellEventHandler(cell_FilterChanged);
                    cell.FilterPopup   += new ColumnHeaderCellEventHandler(cell_FilterPopup);
                    column.MinimumWidth = cell.MinimumSize.Width;
                    if (ColumnHeadersHeight < cell.MinimumSize.Height)
                    {
                        ColumnHeadersHeight = cell.MinimumSize.Height;
                    }
                    column.HeaderCell = cell;
                }
            }
        }
Example #10
0
        /// <summary>
        /// Build the complete Filter string
        /// </summary>
        /// <returns></returns>
        private string BuildFilterString()
        {
            StringBuilder sb   = new StringBuilder("");
            string        appx = "";

            foreach (string filterOrder in _filterOrderList)
            {
                DataGridViewColumn Column = Columns[filterOrder];

                if (Column != null)
                {
                    ColumnHeaderCell cell = Column.HeaderCell as ColumnHeaderCell;
                    if (cell != null)
                    {
                        if (cell.FilterAndSortEnabled && cell.ActiveFilterType != MenuStrip.FilterType.None)
                        {
                            sb.AppendFormat(appx + "(" + cell.FilterString + ")", Column.DataPropertyName);
                            appx = " AND ";
                        }
                    }
                }
            }
            return(sb.ToString());
        }