Recuperare chiave datagrid senza evento

martedì 22 luglio 2008 - 10.27

stuzzo Profilo | Junior Member

Salve a tutti.
Vorrei sapere come riuscire a recuperare la chiave di una riga di un datagrid, però senza che venghi generato l'evento che appartiene a DataGridCommandEventArgs.

Nello specifico ho una datagrid, dove le righe possono essere selezionate attraverso dei checkbox. Ogni riga ha associata una foto.
Una volta visto questo elenco, si scelgono le righe interessate e si va avanti, visualizzando in una pagina successiva solo quelle interessate, ovviamente comprensive di foto, perciò avevo pensato di mettere in un hashtable, un insieme di valori del tipo (ID, percorsoFoto) per ogni riga, così nella pagina successiva potevo tranquillamente recuperare le foto, ma non ho trovato nessuno modo di vedere come recuperare l'id della riga.....

Mi potete consigliare? grazie

rossimarko Profilo | Guru

Ciao,

il controllo datagrid ha una proprietà DataKeys che contiene tutti i valori delle chiavi (salvati in base al DataKeyField). E' una collection e per prelevare un valore devi passare l'indice di riga
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stuzzo Profilo | Junior Member

Ciao, grazie della risposta.
Diciamo che intuitivamente ero arrivato a questa soluzione, ma viene sempre restituito l'errore : Formato stringa input non corretto.
Il codice è così:
Considerando DataKeyField="IDPROVA" -> è un numero

int ID = 0;

ID = (int)mioDatagrid.DataKeys["IDPROVA"]; ho provato così
ID = (int)mioDatagrid.DataKeys[IDPROVA]; ho provato così
ID = (int)mioDatagrid.DataKeys[int.Parse(IDPROVA.ToString())]; ho provato così

ma niente, l'errore è sempre lo stesso.
come argomento DataKeys vuole un intero.

Come devo fare??

rossimarko Profilo | Guru

>int ID = 0;
>
>ID = (int)mioDatagrid.DataKeys["IDPROVA"]; ho provato così
>ID = (int)mioDatagrid.DataKeys[IDPROVA]; ho provato così
>ID = (int)mioDatagrid.DataKeys[int.Parse(IDPROVA.ToString())];
>ho provato così
>
>Come devo fare??

Devi usare l'indice di riga. Ad esempio:
ID = (int)mioDatagrid.DataKeys[2];

prende il valore della chiave della riga 3
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5