Prelevare dati da gridview

giovedì 19 febbraio 2009 - 17.48

bolla111 Profilo | Senior Member

come posso prelevare dati da un gridview senza usare una colonna di tipo hyperlinkfield?
spiego il mio caso...io ho un gridview con delle textbox sotto di esso; nel grid ho inserito una colonna con dei linkbutton. vorrei che premendo questo linkbutton, alcuni dati presenti nel grid finiscano dentro le textbox che ho creato...
come posso fare?

rossimarko Profilo | Guru

Ciao,

quando premi il linkbutton viene generato l'evento on RowCommand (http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.rowcommand.aspx). Se associ al linkbutton un commandname nel rowcommand puoi verificare che il commandname sia quello che ti interessa e poi prelevando la chiave univoca del record ricaricare i dati della riga selezionata e popolare le textbox.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

bolla111 Profilo | Senior Member

questo funziona anche se già impostato anche un "OnClick" gestito da codice?
quello che mi hai descritto di fare devo gestirlo da codice o da markup? e puoi farmi un esempietto?

rossimarko Profilo | Guru

Si può fare anche con l'onclick, in quel caso devi prelevare il riferimento al bottone e da li puoi sapere qual'è il commandargument.
Adesso non riesco a farti un esempio, intanto puoi guardare quello riportato nella documentazione per farti un'idea: http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.rowcommand.aspx
oppure domani ti posto qualcosa
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

bolla111 Profilo | Senior Member

adesso vedo...domani mandamelo cmq...grazie...ciao

bolla111 Profilo | Senior Member

ciao
ho provato ad usare questo codice per recuperare l'indice della riga del gridview:

Dim c As Control = CType(e.CommandSource, Control)
Dim r As GridViewRow = CType(c.NamingContainer, GridViewRow)
indice=r.RowIndex

però adesso dovrei vedere come recuperare tutti i valori che mi servono...

se riesci mi posti l'esempio che dicevi ieri?
ciao
grazie

rossimarko Profilo | Guru

I valori puoi ricaricarli anche dalla tua sorgente dati.

Io ho fatto un esempio molto banale con una griglia

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

e il relativo codice inserito nella pagina
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La funzione getutente che io lasciato vuota ti dovrà ritorna i dati dell'utente che userai per popolare i tuoi controlli. Io ho messo una datarow per coerenza con la datatable creata, ma puoi usare quello che ti viene più comodo.

Se hai tutti i dati che ti servono nella griglia hai un'altra possibilità che è quella di inserire dei template field che contengono dei controlli e poi nel rowdatabound o nell'evento del tuo pulsante andare a prendere il riferimento ai controlli e usare il valore contenuto per popolare i nuovi campi

-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

bolla111 Profilo | Senior Member

ciao...guarda sono appena riuscito....ho finito il codice che ho postato prima e funziona:

Dim c As Control = CType(e.CommandSource, Control)
Dim r As GridViewRow = CType(c.NamingContainer, GridViewRow)
TextBox1.Text = r.Cells(0).Text
TextBox2.Text = r.Cells(1).Text
TextBox3.Text = r.Cells(2).Text

grazie cmq x l'idea del rowcommand

avrei un altra domanda ora...apro un nuovo thread...
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