Newsgroup: it.comp.lang.visual-basic
Titolo: Selezionare tutte le righe di una DataGrid

Salve a tutti, spero che ci sia qualcuno rientrato dalle ferie che mi può
aiutare.
Sto utilizzando una DataGrid per estrarre dei dati da un database MSDE. La
scelta della DataGrid, appoggiata su un recordset che poi viene disconnesso
immediatamente, è dovuta alla necessità di gestire una selezione multipla di
righe, e la DataGrid è l'unico controllo gratuito che lo consente.
Per selezionare la riga corrente aggiungo il bookmark alla collection
dgr1.SelBookmark, e per ciclare le righe selezionate eseguo il ciclo For
sulla collection. In questo modo posso contare le righe selezionate, e
sommare il campo Importo per tutte le righe selezionate, e così via.
Funziona tutto egregiamente.
Solo che il cliente mi ha chiesto un pulsante "Seleziona tutto".
Sembrava una giacchettata e invece è tutto il pomeriggio che ci sbatto, e
non sono riuscito a trovare nulla di utile nemmeno dopo due ore di Google.
Il problema è che non c'è la possibiltà di beccare da codice il bookmark di
una riga non visibile. Mi spiego: mettiamo che il mio recordcount sia di 55
record (lo so dal recordset a cui è appoggiata la DataGrid), e mettiamo che
la mia DataGrid possa visualizzare solo 10 righe per volta. Bene, con il
metodo Bookmark posso identificare solo la riga corrente, e con il metodo
RowBookmark posso beccare il bookmark soltanto di una delle dieci righe
attualmente visualizzate. Io ho detto "Poco male, mi sposto avanti di altre
dieci righe impostando la proprietà FirstRow".
E invece no! Perchè se mi sposto avanti sulla seconda pagina, mettiamo dal
record 11 al 20, cambia la proprietà Row: se seleziono il quinto record (che
dovrebbe essere il quindicesimo, diciamo con un indice in base 0 uguale a
14) la proprietà Row, mi restituisce 4, e lo stesso se seleziono la quarta
riga di un terzo o un quarto gruppo di dieci record!! E questo
indipendentemente dal primo record di partenza. L'unico valore assoluto è
nella proprietà FirstRow che però non posso selezionare sempre per beccare
il bookmark, perché per esempio nell'ultimo gruppo ho bisogno di selezionare
anche la seconda, la terza, la quarta e la quinta riga (l'ultimo record),
che non si possono usare per impostare la proprietà FirstRow.
Non ho trovato nessun esempio di codice, e chiedo aiuto ai guru freschi di
ferie. Leggerò con attenzione qualsiasi commento. Grazie per l'aiuto.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:78Z12Z65Z32Y11...@usenet.libero.it...

Una cosa simile sembra che tu l'abbia già provata...?
    rsdata.MoveFirst
    Do Until rsdata.EOF
         DataGrid1.SelBookmarks.Add rsdata.Bookmark
         rsdata.MoveNext
    Loop
Prova a vedere se questo si avvicina...
http://tinyurl.com/358p76
oppure questo:
http://tinyurl.com/33xmdd
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 
http://tinyurl.com/33xmdd
Il primo č in tedesco e solo per VB2005, il secondo non ci si avvicina
nemmeno. Ma comunque adesso funziona con la tua dritta.
A buon rendere.


 No, non l'avevo provata e funziona. Mitico Baraldi.
Che culo....
;-)
Ciao
