net ejemplos asp telerik radgridview

ejemplos - telerik radgrid documentation



Telerik RADGrid y clasificación (1)

Resultó que mis datos de RadGrid estaban vinculados a un ObservableCollection. La funcionalidad de clasificación de la cuadrícula no funcionó. Ordenar la ObservableCollection fue la solución. Terminé ordenando el ObservableCollection usando linq.

Estoy usando RADGridView for WPF para mostrar algunos datos. Se extrae dinámicamente de DB, por lo que no conozco los nombres de las columnas ni el tipo de datos que contiene cada celda. Quiero que el usuario ordene los datos en cada columna cuando hace doble clic en el encabezado de una columna.

Por alguna razón, la grilla no ordena. Esto es lo que tengo hasta ahora.

private void SetEventHandlers() { if (_grid != null) { _grid.AddHandler(GridViewCellBase.CellDoubleClickEvent, new EventHandler<RadRoutedEventArgs>(OnCellDoubleClick), true); } } private void OnCellDoubleClick(object sender, RoutedEventArgs e) { GridViewCellBase cell = e.OriginalSource as GridViewCellBase; if (cell != null && cell is GridViewHeaderCell) { SetSorting(cell); } } private void SetSorting(GridViewCellBase cell) { GridViewColumn column = cell.Column; SortingState nextState = GetNextSortingState(column.SortingState); _grid.SortDescriptors.Clear(); if (nextState == SortingState.None) { column.SortingState = SortingState.None; } else { _grid.SortDescriptors.Add(CreateColumnDescriptor(column, nextState)); column.SortingState = nextState; } }

EDITAR:

private ColumnSortDescriptor CreateColumnDescriptor(GridViewColumn column, SortingState sortingState) { ColumnSortDescriptor descriptor = new ColumnSortDescriptor(); descriptor.Column = column; if (sortingState == SortingState.Ascending) { descriptor.SortDirection = ListSortDirection.Ascending; } else { descriptor.SortDirection = ListSortDirection.Descending; } return descriptor; }