Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Come ottenere l'elemento selezionato corretto in DataGrid?
giovedì 27 ottobre 2005 - 12.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ysdemarc
Profilo
| Expert
587
messaggi | Data Invio:
gio 27 ott 2005 - 12:49
La questione è questa..
io ho il mio bel DataGrid popolato con un DataTable.
ora se faccio :
int row = MioDataGrid.CurrentCell.RowNumber;
DataTable dt = (DataTable)MioDataGrid.DataSource;
DataRow dr = dt.Rows[row]
ottengo la mia bella riga che è stata selezionata.
Se però malauguratamente l'utente decide di cliccare sulle intestazioni di colanna del DataGrid e quindi sortare a video ii dati visionati con il codice sopra non riesco ad avere la riga realmente selezionata.
Mi spiego meglio se io ho una colonna e due righe che sono valorizzate con A e B
se l'utente seleziona la prima riga ottengo A però se decide di sortare in modo decrescente e seleziona le sua prima riga, cioè B, io ottengo sempre A.
Come si fa a leggere la riga giusta?
andreapavia
Profilo
| Senior Member
203
messaggi | Data Invio:
gio 27 ott 2005 - 14:22
con cosa selezioni la riga,, col mouse????
sembrera' una cazzata ma se la selezioni col mouse (e basta) posso dirti come si fa....
Private Sub tuodatagrid_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tuodatagrid.MouseDown
Dim pt = New Point(e.X, e.Y)
Dim hti As DataGrid.HitTestInfo = tuodatagrid.HitTest(pt)
If hti.Type = DataGrid.HitTestType.Cell Then
RigaCella = hti.Row
ColonnaCella = hti.Column
da qui in poi hai le informazioni che ti servono,,, becchi il cio' che è visulaizzato nella e cella e vai a lavorare sul record del datasource del datagrid
End If
End Sub
fammi sapere
se la selezione navigando coi tasti non ne ho la piu' pallida idea perchè non l'ho mai fatto
ysdemarc
Profilo
| Expert
587
messaggi | Data Invio:
gio 27 ott 2005 - 15:14
Ciao Andrea
ti ringrazio però non credo che in questo modo risolava il problema.
Alla fine col tuo metodo ottengo il numero di colonna e della riga selezionata.
E questo già riesco ad ottenerlo. Quello che voglio avere è il DataRow relativo alla riga del DataGrid e non del DataTable ad esso associato.
Vincenzo
Programmatore sbilenco :-D
ysdemarc
Profilo
| Expert
587
messaggi | Data Invio:
gio 27 ott 2005 - 17:29
Ciao Coach,
ma è quello che già faccio (vedi il primo post)
Il problema è che così facendo ho questo problema
io presento all'utente i dati ordinati per una certa colonna: ad esempio
A
B
C
...
Z
ora se l'utente seleziona la riga 2 io leggo perfettamente dal DataRow che è stato selezionato B
però se l'utente invece ordina le colonne in alktro modo tipo:
Z
V
U
...
A
la riga numero 1 diventa quella che contiene Z
ma ecco qui l'inchippo
se lui seleziona zeta e io vado a leggere il DataRow della prima riga non leggo Z bensì A poiche nel DataTable la prima riga rimane A.
ora leggendo il DataTable dal DataRow non lo trovo nemmeno ordinato come ha smanettato l'utente poichè me lo restituisce come io glielo ho passato.
Quindi come posso fare?
L'unica che per ora mi viene in mente è capire su quale colonna ha cliccato e in che modo ha ordinato e sortare un DataTable clone da utilizzare con l'indice della riga.. ma la cosa forse è troppo macchinosa... ci sarà pur un modo..
spero di essermi espresso un pò più chiaramente.
grazie tante.
ciao
Vincenzo
Programmatore sbilenco :-D
ysdemarc
Profilo
| Expert
587
messaggi | Data Invio:
ven 28 ott 2005 - 13:08
Perfetto.. a me interessava ottenere il DataRow..
Grazie tante!
ciao!
Vincenzo
Programmatore sbilenco :-D
Torna su
Stanze Forum
Elenco Threads
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 !