2010-09-02 2 views
3

J'ai un DatagridView triable avec une dernière ligne récapitulative contenant la somme de quelques colonnes, je veux garder cette ligne récapitulative toujours comme la dernière ligne (en bas) de datagridView. À l'heure actuelle, lorsque je trier une colonne de datagridView également la ligne de résumé est triée, je ne veux pas cela. Je veux garder la dernière rangée (ligne récapitulative) de DatagridView non triable.Définir la dernière rangée d'un datagridview non triable (toujours en bas)

Existe-t-il un moyen de le faire?

J'ai trouvé une solution:

J'ai surchargée la méthode SortCompare de cette manière:

private void grid_SortCompare(object sender, DataGridViewSortCompareEventArgs e) 
    { 
     try 
     { 
      if (e.RowIndex1 == this.dataGridView1.Rows.Count -1) 
       e.Handled = true; 
      if (e.RowIndex2 == this.dataGridView1.Rows.Count - 1) 
       e.Handled = true; 
      return; 
     } 
     catch (Exception ex) 
     { 
      ex.ToString(); 
     } 
    } 

Répondre

1

Vous pouvez ajouter une colonne à la table de données, et définissez la valeur pour tous les enregistrements non-récapitulatifs à 0. Définissez la valeur de l'enregistrement récapitulatif sur 1, puis trier dans la colonne "récapitulatif", puis les autres.

Cela peut ne pas fonctionner correctement en mémoire, vous devriez donc le faire dans la requête SQL si possible, en fonction de la base de données que vous utilisez.

Questions connexes