DataGridView.SortOrder Propiedad
Definición
Obtiene un valor que indica si los elementos del control DataGridView se ordenan en orden ascendente o descendente, o no se ordenan.Gets a value indicating whether the items in the DataGridView control are sorted in ascending or descending order, or are not sorted.
public:
property System::Windows::Forms::SortOrder SortOrder { System::Windows::Forms::SortOrder get(); };
[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.SortOrder SortOrder { get; }
member this.SortOrder : System.Windows.Forms.SortOrder
Public ReadOnly Property SortOrder As SortOrder
Valor de propiedad
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la propiedad SortOrder en una ordenación mediante programación.The following code example demonstrates how to use the SortOrder property in a programmatic sort.
private void sortButton_Click(object sender, System.EventArgs e)
{
// Check which column is selected, otherwise set NewColumn to null.
DataGridViewColumn newColumn =
dataGridView1.Columns.GetColumnCount(
DataGridViewElementStates.Selected) == 1 ?
dataGridView1.SelectedColumns[0] : null;
DataGridViewColumn oldColumn = dataGridView1.SortedColumn;
ListSortDirection direction;
// If oldColumn is null, then the DataGridView is not currently sorted.
if (oldColumn != null)
{
// Sort the same column again, reversing the SortOrder.
if (oldColumn == newColumn &&
dataGridView1.SortOrder == SortOrder.Ascending)
{
direction = ListSortDirection.Descending;
}
else
{
// Sort a new column and remove the old SortGlyph.
direction = ListSortDirection.Ascending;
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
}
}
else
{
direction = ListSortDirection.Ascending;
}
// If no column has been selected, display an error dialog box.
if (newColumn == null)
{
MessageBox.Show("Select a single column and try again.",
"Error: Invalid Selection", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
dataGridView1.Sort(newColumn, direction);
newColumn.HeaderCell.SortGlyphDirection =
direction == ListSortDirection.Ascending ?
SortOrder.Ascending : SortOrder.Descending;
}
}
Private Sub SortButton_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles sortButton.Click
' Check which column is selected, otherwise set NewColumn to Nothing.
Dim newColumn As DataGridViewColumn
If dataGridView1.Columns.GetColumnCount(DataGridViewElementStates _
.Selected) = 1 Then
newColumn = dataGridView1.SelectedColumns(0)
Else
newColumn = Nothing
End If
Dim oldColumn As DataGridViewColumn = dataGridView1.SortedColumn
Dim direction As ListSortDirection
' If oldColumn is null, then the DataGridView is not currently sorted.
If oldColumn IsNot Nothing Then
' Sort the same column again, reversing the SortOrder.
If oldColumn Is newColumn AndAlso dataGridView1.SortOrder = _
SortOrder.Ascending Then
direction = ListSortDirection.Descending
Else
' Sort a new column and remove the old SortGlyph.
direction = ListSortDirection.Ascending
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
End If
Else
direction = ListSortDirection.Ascending
End If
' If no column has been selected, display an error dialog box.
If newColumn Is Nothing Then
MessageBox.Show("Select a single column and try again.", _
"Error: Invalid Selection", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Else
dataGridView1.Sort(newColumn, direction)
If direction = ListSortDirection.Ascending Then
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
Else
newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
End If
End If
End Sub
Comentarios
Esta propiedad se utiliza para determinar qué glifo de ordenación aparece cuando la columna especificada por la propiedad SortedColumn tiene un valor de propiedad SortMode de Automatic.This property is used to determine which sorting glyph appears when the column specified by the SortedColumn property has a SortMode property value of Automatic. Cuando la columna tiene un valor de propiedad SortMode de Programmatic, debe mostrar y ocultar el glifo de ordenación por medio de la propiedad SortGlyphDirection.When the column has a SortMode property value of Programmatic, you must display and hide the sorting glyph yourself through the SortGlyphDirection property. Cuando la columna tiene un valor de propiedad SortMode de NotSortable, puede mostrar el glifo de ordenación, pero no se reserva espacio para él si se cambia automáticamente el tamaño de la columna.When the column has a SortMode property value of NotSortable, you can display the sorting glyph, but space is not reserved for it if the column is automatically resized.
Nota
El valor de esta propiedad no es significativo al ordenar el control mediante la ordenación personalizada.The value of this property is not meaningful when you sort the control using custom sorting. Para obtener más información sobre la ordenación personalizada, vea el método Sort y el evento SortCompare.For more information about custom sorting, see the Sort method and the SortCompare event.