Indice datagridview

venerdì 03 aprile 2009 - 09.43

sergio.mitrione Profilo | Junior Member

Ciao a tutti,
come faccio a sapere l'indice di una riga appena inserita in un datagrid?

ciao e grazie a tutti

luigidibiasi Profilo | Guru

Dovrebbe andare così:

NOMEGRIGLIA.Rows(NOMEGRIGLIA.Rows.Count-1)

oppure devi vedere se esiste un evento del tipo rowInserted e da li leggerlo nel parametro e
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

Ciao Luigi,
scusami ma mi ero dimenticato di scrivere una cosa:
dopo che ho effettuato l'insert ho effettuato una sort sul datagrid...
Da qui non riesco più a recuperare l'id

luigidibiasi Profilo | Guru

Una Sort a livello dati o semplicemente cliccando sull'header?
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

l'ho fatta a livello dati...

dg1.Sort(dg1.Columns(5), System.ComponentModel.ListSortDirection.Ascending)

luigidibiasi Profilo | Guru

>l'ho fatta a livello dati...
>
>dg1.Sort(dg1.Columns(5), System.ComponentModel.ListSortDirection.Ascending)

Allora puoi dichiarare una variabile a livello globale:

dim LastR as datagridviewRow

Dopo l'insert ma prima del sort

LastR = DataGridView1.Rows(DataGridView1.Rows.Count - K)

con K = 2 se è ammesso l'inserimento direttamente in griglia (ultima riga modificabile con lo *) o K=1 se non puoi scrivere in griglia.

Eseguendo il sort dopo l'impostazione di LastR non perdi il riferimento ma le righe vengono riordinate.

Accendi poi all'indice con LastR.index oppure agisci direttamente sulla riga utilizzando LastR.Metodo/Proprietà

Tieni presente che LastR può essere impostato dopo ogni insert oppure in un eventuale evento rowInsert (se esiste sarebbe più corretto impostarla lì!)

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

ok ...ma poi come faccio a convertirlo in un intero da mettere in

dg1.Rows(ind).Selected = True

che mi serve per selezionare la riga

luigidibiasi Profilo | Guru

>ok ...ma poi come faccio a convertirlo in un intero da mettere
>in
>
>dg1.Rows(ind).Selected = True

dg1.rows(lastR.index).selected=true

oppure se funziona.... lastR.selected=true

>
>che mi serve per selezionare la riga

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

ho provato... ma appena effettuo il sort mi perde la selezione
della riga...

luigidibiasi Profilo | Guru

Dopo la sort ti imposta LastR = nothing oppure perdi la selezione nel senso che
non vedi piu' la riga selezionata?

Nel secondo caso devi rieseguire la Select dopo ogni sort
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

quando effetuo il sort il datagrid viene messo in ordine ma
seleziona la prima riga

luigidibiasi Profilo | Guru

>quando effetuo il sort il datagrid viene messo in ordine ma
>seleziona la prima riga

prova a postare il codice magari vediamo dove è l'intoppo
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

sergio.mitrione Profilo | Junior Member

ho risolto lo stesso con un metodo un pò meno bello ma sembra efficace..
ho dovuto fare un ciclo su tutti gli elementi del datagrid dopo il sort per evidenziare
l'index giusto
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5