Autore Topic: ordinare colonne di una griglia  (Letto 1465 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
ordinare colonne di una griglia
« il: 25 Ottobre 2009, 20:56:21 »
ciao raga

ho una gridview che dovrebbe caricare i dati da un database, nella colonna 1 (contatore) colonna 2 (cliente), colonna 3 (data) ecc..

ora tramite dei RadioButton vorrei ordinare tutta la griglia x colonna in modo crescente.

esempio RadioButton1 ordina la colonna1, RadioButton2 la colonna2 ecc..

la colonna selezionata e ordinata dovrebbe cambiare colore

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #1 il: 25 Ottobre 2009, 22:49:18 »
non vorrei dire una cavolata ma credo che devi ordinare i dati prima di inserirli nella griglia.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #2 il: 25 Ottobre 2009, 22:59:42 »
Penso che sia sufficiente fare una query per ogni colonna e ricarichi i dati.
Per quanto riguarda il colore alla colonna credo che basti questo codice
Codice: [Seleziona]
GridView1[i, 1].Background = Color.Cyan

Non ho provato, è solo teoria. 1 è il numero della colonna
Fammi sapere ciao

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #3 il: 25 Ottobre 2009, 23:14:45 »
Ho provato e funziona, ti colora tutta la colonna.
Ti conviente fare una funzione per ogni colonna con la query che filtri i dati come vuoi e il riempimento della grid con la colonna colorata

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #4 il: 25 Ottobre 2009, 23:58:41 »
non voglio riordinare i dati prima di inserirli, ma dopo l'inserimento, in quanto dato che il programma che sto cercando di realizzare sarà multiutente, nel frattempo i dati potrebbero essere cambiati.

in visualbasic (da cui purtroppo provengo) era stesso la griglia che riordinava i dati inseriti.

x golia
il tuo codice GridView1[i, 1].Background = Color.Cyan

è una buona trovata, basta un ciclo for e la somma delle rows

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #5 il: 26 Ottobre 2009, 23:32:41 »
con gridwiev non puoiordinare i dati
prova ad usare i componenti di db.form tipo i databrowser

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #6 il: 27 Ottobre 2009, 13:14:31 »
L'unico modo per ordinare i dati, indipendentemente dalla fonte, è quello di caricarli in un array privato. Indi per cui creare un'apposita funzione di ordinamento, in base alle proprie esigenze. Ricordo che è possibile intercettare il click sulla testata di oggetto (es. TableView), per selezionare la colonna.

Io avevo usato un metodo, ovvero mi salvavo i dati un array Object[] (o una array di oggetti creati ad-hoc), poi mantenevo nel Tag dell'oggetto lista (o grilia) il tipo dell'ultimo ordinamento (es. D=desc, A=asc) e il numero di colonna a cui si riferiva l'ordinamento. Tramite questi parametri, quando cliccavo su una colonna, chiamavo la mia funzione di ordinamento, determinavo i precedenti parametri di ordinamento, quindi eseguivo l'operazione inversa. Una volta ordinato l'array, ripopolavo la lista e salvavo nuovamento i parametri di ordinamento.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #7 il: 30 Ottobre 2009, 21:12:16 »
avevo pensato a un array
solo che con il tempo i record supereranno presto i 10000
non è che l'array non riesco a gestirli oppure mi occupano troppa ram?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: ordinare colonne di una griglia
« Risposta #8 il: 01 Novembre 2009, 18:42:12 »
Bè, dipende dalla dimensione di questi dati.

E, comunque, anche una griglia potrebbe avere problemi, non pensi?

Io penserei ad una gestione multipagina, perchè gestire 10000 record di botto, mi sembra alquanto pesante e deleterio.

Ma poi, chi leggerebbe questa lista?