Domanda

Ho una datagridview che associo a una tabella sql, in quel dv ho quegli attributi: Id, Nome e Prezzo. Quando imposto il SortMode delle colonne Nome su Automatico e faccio clic sull'intestazione di questa colonna, posso ordinare questo DV in base alla prima lettera del Nome, in questo modo posso ordinare i prodotti in base alle loro prime lettere (Acumulatore, Barca, CocaCola, Motore ecc.).

Esiste un modo in cui ciò accada senza fare clic sull'intestazione della colonna Nome. Sto cercando un codice che farà questo lavoro quando verrà caricato il modulo.

È stato utile?

Soluzione

Su DataGridView esiste un metodo chiamato " Sort " ;:

this.dataGridView1.Sort(this.dataGridView1.Columns["Name"], ListSortDirection.Ascending);

Questo ordinerà a livello di codice la tua datagridview.

Altri suggerimenti

dataGridView1.Sort(dataGridView1.Columns[0],ListSortDirection.Ascending);

È possibile controllare i dati restituiti dal database SQL ordinando i dati restituiti:

orderby [Name]

Se si esegue la query SQL dall'applicazione, ordinare i dati restituiti. Ad esempio, creare una funzione che chiama la procedura o esegue l'SQL e assegnagli un parametro che ottenga i criteri di ordinamento. Perché se hai ordinato i dati restituiti dal database consumerà tempo ma lo ordinerai poiché viene eseguito come dici che vuoi che non sia ordinato dall'IU che vuoi che sia ordinato in fase di esecuzione, quindi ordinalo quando esegui l'SQL query.

Questo è più semplice :)

dataview dataview1; 
this.dataview1= dataset.tables[0].defaultview;
this.dataview1.sort = "[ColumnName] ASC, [ColumnName] DESC";
this.datagridview.datasource = dataview1;

Usa la proprietà Datatable.Default.Sort e poi associalo alla datagridview.

Il modo migliore per farlo è ordinare l'elenco prima di associare l'origine dati.

cars = cars.OrderBy (o = > o.year) .ThenBy (o = > o.color) .ToList (); adgCars.DataSource = auto;

Ci scusiamo per il mio cattivo inglese.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top