Recuperare la prima cella di una riga selezionata in datagridview

venerdì 16 aprile 2010 - 10.15

TaiChi Profilo | Junior Member

Salve a tutti,

in una datagridview cliccando su una qualsiasi cella di una qualsiasi riga, recuperare l'ID del record in questione che è la prima cella

per adesso ho visto che this.mybindingSource.Current in fase di debug mi fa vedere Row.ItemArray che contiene tutte le celle della riga selezionata ma non ho disponibile Row.ItemArray nella scrittura del codice.

Potete darmi una dritta?

Grazie mille.

Alessio Forconi

kataklisma Profilo | Senior Member

>Salve a tutti,
Salve

>in una datagridview cliccando su una qualsiasi cella di una qualsiasi
>riga, recuperare l'ID del record in questione che è la prima
>cella
>
>per adesso ho visto che this.mybindingSource.Current in fase
>di debug mi fa vedere Row.ItemArray che contiene tutte le celle
>della riga selezionata ma non ho disponibile Row.ItemArray nella
>scrittura del codice.
>
>Potete darmi una dritta?

dataGrid1[dataGrid1.CurrentRowIndex, 0].ToString();

Questa operazione restituisce il valore della prima cella nel record selezionato.

P.S

Vista l'operazione che devi effettuare il datagrid sarebbe esteticamente migliore se al selezionare della cella si selezionasse tutto il record, inserisci nell'evento currentCellChanged :

private void dataGrid1_CurrentCellChanged(object sender, EventArgs e) { dataGrid1.Select(dataGrid1.CurrentRowIndex); }

>Grazie mille.
Di niente :)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

TaiChi Profilo | Junior Member

>dataGrid1[dataGrid1.CurrentRowIndex, 0].ToString();
>
>Questa operazione restituisce il valore della prima cella nel
>record selezionato.
>
[Edit:] con CurrentRow.Index, 0].Value. ottengo quasi quello che voglio, intendo dire che ottengo sempre e solo i dati della prima riga inoltre se clicco su una cella della prima riga allora va bene e mi restituisce il valore della prima cella invece se clicco sulla seconda riga ottengo sempre e solo il valore della seconda cella della prima riga.... epperchè secondo te?
>
>Vista l'operazione che devi effettuare il datagrid sarebbe esteticamente
>migliore se al selezionare della cella si selezionasse tutto
>il record, inserisci nell'evento currentCellChanged :
>
>private void dataGrid1_CurrentCellChanged(object sender, EventArgs
>e)
>{
> dataGrid1.Select(dataGrid1.CurrentRowIndex);
>}

Già fatto .... :)


Alessio Forconi

kataklisma Profilo | Senior Member

>>
>>dataGrid1[dataGrid1.CurrentRowIndex, 0].ToString();
>>
>>Questa operazione restituisce il valore della prima cella nel
>>record selezionato.
>>
>CurrentorowIndex non me lo da disponibile allora ho provato con
>CurrentRow.Index, 0].ToString() ma non ottengo il valore della
>cella bensì la posizione della cella sotto forma dell'indice
>della riga e della colonna.

Puoi postare il codice che hai scritto nella routine?
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

TaiChi Profilo | Junior Member

In realtà non c'è codice, ho solo messo il tip che mi hai dato tu in CellContentClick

private void gridTerritori_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { MessageBox.Show(gridTerritori[gridTerritori.CurrentRow.Index, 0].Value.ToString()); }

ho modificato il mio messaggio precedente, scusa la confusione non avevo visto la tua risposta nel frattempo.

Alessio Forconi

kataklisma Profilo | Senior Member

private void dataGrid1_DoubleClick(object sender, EventArgs e) { Messagebox.Show(dataGrid1[dataGrid1.CurrentRowIndex, 0].ToString()); } }

Che versione del framework utilizzi? Cosa significa che CurrentRowIndex non è disponibile? Non penso che .net offra un framework ad personam!

Il codice postato sopra fa comparire nella messagebox il valore della prima colonna di un record, sicuro :)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

TaiChi Profilo | Junior Member

>private void dataGrid1_DoubleClick(object sender, EventArgs e)
> {
>Messagebox.Show(dataGrid1[dataGrid1.CurrentRowIndex, 0].ToString());
> }
Ho visual Studo 2008 su Win 7 e ho associato la datagridview usando il tool della datagridview stessa

>Che versione del framework utilizzi? Cosa significa che CurrentRowIndex
>non è disponibile? Non penso che .net offra un framework ad personam!
>
>Il codice postato sopra fa comparire nella messagebox il valore
>della prima colonna di un record, sicuro :)
Ne sono certo... :) :)


Alessio Forconi

TaiChi Profilo | Junior Member

Ho risolto così:

gridTerritori.CurrentRow.Cells[0].Value.ToString()

va benissimo... :)


Grazie per il tuo aiuto

Alessio Forconi

kataklisma Profilo | Senior Member

>Ho risolto così:
>
>gridTerritori.CurrentRow.Cells[0].Value.ToString()
>
>va benissimo... :)

Ok, ma resta strano il fatto che una proprietà presente nell'oggetto datagrid a te non compaia....

>Grazie per il tuo aiuto
Di niente ;)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

TaiChi Profilo | Junior Member

Per la verità non se ne fa cenno neanche nella guida.... sono stato cattivo e a me non l'hanno messa...? :)

Pazienza, il modo, pulito, per farlo l'ho trovato....

Alessio Forconi

kataklisma Profilo | Senior Member

>Per la verità non se ne fa cenno neanche nella guida.... sono
>stato cattivo e a me non l'hanno messa...? :)
>
>Pazienza, il modo, pulito, per farlo l'ho trovato....

L'importante è questo!

Se posso esserti d'aiuto, chiedi pure ;)

Buona giornata.


------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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