private void grd_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { DataTableFilterSortData data = _filterSortData; if (data == null) { return; } DataGridViewColumn col = grd.Columns[e.ColumnIndex]; DataView v = DataView; Cursor currentCursor = Cursor.Current; try { Cursor.Current = Cursors.WaitCursor; ShowStatusProgress("Sorting data..."); if (Control.ModifierKeys == Keys.Shift) { if (data.SortCols.ContainsKey(col.DataPropertyName)) { data.SortCols.Remove(col.DataPropertyName); } } else if (Control.ModifierKeys != Keys.Control) { //data.SortCols.Clear(); //data.PrepareSortOrderFor(col.DataPropertyName); //data.SortCols[col.DataPropertyName] = grd.SortOrder; //data.CurrenSortExpression = data.GenerateSortExpression(); //return; SortOrder sortOrder = SortOrder.None; if (data.SortCols.ContainsKey(col.DataPropertyName) && data.SortCols.Count == 1) { sortOrder = data.SortCols[col.DataPropertyName]; } data.SortCols.Clear(); data.SortCols.Add(col.DataPropertyName, sortOrder); data.PrepareSortOrderFor(col.DataPropertyName); } else { data.PrepareSortOrderFor(col.DataPropertyName); } v.Sort = data.GenerateSortExpression(); data.CurrenSortExpression = v.Sort; } finally { Cursor.Current = currentCursor; HideStatusProgress(); RefreshResultSortStatus(); } }
private void grd_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { DataTableFilterSortData data = _filterSortData; if (data == null || ActiveDataTable == null) { return; } if (String.IsNullOrEmpty(data.CurrenSortExpression)) { _prevUnsortedTable = ActiveDataTable; } DataGridViewColumn col = grd.Columns[e.ColumnIndex]; DataView v = NeedNewActiveDataView(); Cursor currentCursor = Cursor.Current; try { Cursor.Current = Cursors.WaitCursor; ShowStatusProgress("Sorting data..."); if (Control.ModifierKeys == Keys.Shift) { if (data.SortCols.ContainsKey(col.DataPropertyName)) { data.SortCols.Remove(col.DataPropertyName); } } else if (Control.ModifierKeys != Keys.Control) { SortOrder sortOrder = SortOrder.None; if (data.SortCols.ContainsKey(col.DataPropertyName) && data.SortCols.Count == 1) { sortOrder = data.SortCols[col.DataPropertyName]; } data.SortCols.Clear(); data.SortCols.Add(col.DataPropertyName, sortOrder); data.PrepareSortOrderFor(col.DataPropertyName); } else { data.PrepareSortOrderFor(col.DataPropertyName); } v.Sort = data.GenerateSortExpression(); ActiveDataTable = v.ToTable(); grd.RowCount = ActiveDataTable.Rows.Count; data.CurrenSortExpression = v.Sort; } finally { Cursor.Current = currentCursor; HideStatusProgress(); RefreshResultSortStatus(); grd.Invalidate(); } }