Selezionare una riga su DataGridView

venerdì 15 maggio 2009 - 10.50

Brujo Profilo | Newbie

Ciao a tutti,

mi sono appena registrato e voglio cogliere subito l'occasione per metterla giù con una richiesta d'aiuto per un problemino che da qualche giorno turba il giusto riposo le mie notti...

Ho un'applicazione scritta in vb.net, con una datagrid connessa ad un datatable. La griglia è posizionata sulla prima pagina di un TabControl, sull'altra ho i campi di inserimento dei dati che questa visualizza. Quando vado in modifica cambio pagina del tab e carico dalla griglia il valore nei campi visualizzati nel secondo tab. Dopo il salvataggio ritorno sul primo pannello, semplice. Senza dilungarmi + di tanto sull'ergonomia dell'applicazione, la mia domanda è questa: quando salvo i dati modificati ricarico le informazioni dal database sulla griglia del primo tab, no problema, il problema invece per me è riposizionare la selezione della datagrid sulla riga che l'utente mi ha selezionato, perchè:

nel caso abbia solamente una chiave è facile e divertente:


Dim bs As New BindingSource
bs.Position = bs.Find("Codice", ValoreCodice)

dove bs è il bindingsource che sta fra la griglia e il datatable che mi fornisce i dati.
Ma nel caso che la mia tabella abbia + chiavi (che si tratta della mia casistica + comune fra l'altro) come faccio a riposizionarmi correttamente visto che la Find accetta solamente un parametro?

grazie in anticipo per ogni tipo di suggerimento,

Brujo

Jeremy Profilo | Guru

Ciao Marco.
Forse non ho capito bene il problema.
Ma potresti impostare a True la proprietà Selected della riga che ti interessa selezionare.
Se il BindingSource è bindato al datagridview, si porterà anche lui nella posizione corrispondente alla riga selezionata.

Facci sapere...
Ciao

Brujo Profilo | Newbie

mmmm no, perchè bisogna che la cerchi per il valore di chiave. Dopo il refresh della lista chiaramente il selected mi si reimposta sulla prima e non posso salvarmi il numero di riga su cui sono prima di ricaricare la griglia perchè potrei visualizzare altri dati, o avere un utente su di un'altra postazione che mi ha cancellato una riga. Devo per forza di cosa salvarmi il valore della chiave e andare a cercarmi la riga in base a quello, se la chiave è, mettiamo Anno e Codice Utente, per dirne una, sono fregato.

alexmed Profilo | Guru

Ciao
immaginando che la tua chiave è:
1. unica
2. formata dalle colonne 0 e 1
cosa ne dici di fare una ricerca tipo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ciao


alexmed

Brujo Profilo | Newbie

bhe si Alex, c'avevo pensato e sarà la soluzione che applicherò però non ci credo di dover essere costretto a scorrere tutti i record per dovermi riposizionare!

alexmed Profilo | Guru

Ciao
in effetti!!!
Però in questo we ho trovato questo

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

a questo indirizzo:
http://search.live.com/images/results.aspx?q=datarepeater&FORM=BIRE#focal=2ec91b0c4c8b6a6d661307c58bb042d4&furl=http%3A%2F%2Fmediastoryboard.com%2Fbm_images%2Fbm_image30.jpg

Vedi se ti può essere utile

Ciao


alexmed
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5