Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
0 sur 1 ont trouvé cela utile - Évaluez ce sujet

DataGridView.Sort, méthode (DataGridViewColumn, ListSortDirection)

Trie le contenu du contrôle DataGridView dans l'ordre croissant ou décroissant en fonction du contenu de la colonne spécifiée.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)
public virtual void Sort(
	DataGridViewColumn dataGridViewColumn,
	ListSortDirection direction
)

Paramètres

dataGridViewColumn
Type : System.Windows.Forms.DataGridViewColumn
Colonne selon laquelle trier le contenu du DataGridView.
direction
Type : System.ComponentModel.ListSortDirection
Une des valeurs de ListSortDirection.
Exception Condition
ArgumentException

La colonne spécifiée ne fait pas partie de ce DataGridView.

ou

La propriété DataSource a été définie et la propriété IsDataBound de la colonne spécifiée retourne false.

ArgumentNullException

dataGridViewColumn est null.

InvalidOperationException

La propriété VirtualMode a la valeur true et la propriété IsDataBound de la colonne spécifiée retourne false.

ou

L'objet spécifié par la propriété DataSource n'implémente pas l'interface IBindingList.

ou

L'objet spécifié par la propriété DataSource a une valeur de propriété IBindingList.SupportsSorting égale à false.

Cette méthode trie le contenu du DataGridView en comparant les valeurs de la colonne spécifiée. Par défaut, l'opération de tri utilisera la méthode Compare pour comparer des paires de cellules dans la colonne à l'aide de la propriété DataGridViewCell.Value.

Pour les colonnes dont la propriété SortMode a la valeur DataGridViewColumnSortMode.Automatic, les propriétés SortedColumn et SortOrder sont définies automatiquement et le glyphe de tri approprié est affiché. Pour les colonnes dont la propriété SortMode a la valeur DataGridViewColumnSortMode.Programmatic, vous devez afficher vous-même le glyphe de tri via la propriété DataGridViewColumnHeaderCell.SortGlyphDirection.

Vous pouvez personnaliser l'opération de tri utilisée par cette méthode en gérant l'événement SortCompare. Cet événement se produit uniquement lorsque la propriété DataSource n'a pas été définie.

Lorsque la propriété DataSource a été définie, cette méthode fonctionne uniquement pour les colonnes liées aux données. La propriété DataGridViewColumn.DataPropertyName des colonnes liées aux données est définie. Cela contraint la propriété DataGridViewColumn.IsDataBound à retourner true.

Si votre contrôle DataGridView contient à la fois des colonnes dépendantes et indépendantes, vous devez implémenter le mode virtuel pour conserver les valeurs des colonnes indépendantes lorsque le contrôle est trié selon une colonne dépendante. Ceci peut être effectué en affectant true à la propriété VirtualMode et en gérant l'événement CellValueNeeded. Si la colonne est modifiable, vous devez également gérer l'événement CellValuePushed. Pour plus d'informations sur le mode virtuel, consultez Comment : implémenter le mode virtuel dans le contrôle DataGridView Windows Forms. Le tri par colonnes indépendantes lorsque le contrôle est lié aux données n'est pas pris en charge.

L'exemple de code suivant montre comment utiliser le Sort dans un tri par programme.


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;
    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ