Evento onlcilck su gridview

giovedì 09 dicembre 2010 - 11.56
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2005

stellare21 Profilo | Newbie

Salve sono alle prime armi con asp.net vorrei poter gestire un semplice evento su una gridview a 3 colonne, eccola:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1" GridLines="Vertical"> <RowStyle BackColor="#EEEEEE" ForeColor="Black" /> <Columns> <asp:BoundField DataField="inserto" HeaderText="inserto" SortExpression="inserto" /> <asp:ImageField> </asp:ImageField> <asp:HyperLinkField HeaderText="dettagli" NavigateUrl="~/esagonali.aspx" Text="vedi dettagli" /> </Columns> <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="#DCDCDC" /> </asp:GridView>
come vedete la terza colonna è una HyperLink, vorrei che al click mi venga catturato il valore presente nella prima colonna della riga dove ho cliccato in modo da eseguire un'opportuna query per caricare la nuova pagina con un altro datagrid.
se non è chiaro faccio un esempio:
datagrid
colonnaA------colonnaB------colonnaC
tipoA----------immagineA-----pagina.aspx
tipoB----------immagineB-----pagina.aspx
tipoC----------immagineC-----pagina.aspx
ovviamente in base a dove clicco devo catturare il dato che ho nella colonna A per espandere il dettaglio di quella categoria nella pagina.aspx

paoval72 Profilo | Senior Member

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

Poi, per recuperare il valore nella pagina aspx del link:

string inserto = Request.QueryString["inserto"];

Fammi sapere.
PV

stellare21 Profilo | Newbie

grazie per l'aiuto.
Mi sorge un'altra domanda, come faccio una volta che gli passo il dato tramite questo metodo post, ad attivare l'eccezione e poterla gestire tramite codice nel file aspx.cs corrispondente? In modo che prima di restituire la nuova pagina esegue la mia query e restituisce la pagina con il datagrid aggiornato

paoval72 Profilo | Senior Member

Se ho capito bene, vorresti usare il parametro che gli passi per fare una query e col risultato popolare il datagrid della nuova pagina.
Se è così, ti basta gestire tutto nell'evento page_load della nuova pagina: prendi il parametro (col metodo request.querystring), lanci la query con quel parametro e il risulktato lo associ come source del datagrid della nuova pagina

stellare21 Profilo | Newbie

si proprio questo voglio fare, ma non capisco come creare il datasource e passargli la query giusta dalla pagina aspx.cs potresti linkarmi un esempio se è possibile?

paoval72 Profilo | Senior Member

Non ci ho pensato prima, ma in che linguaggio programmi? C# o VB?
Io non uso il SqlDataSource (ma di certo c'è anche una soluzione utilizzandolo). Di solito, uso una connessione, un sqlcommand e un sqlDataAdapter per riempire un dataset o un datatable coi risultati.
Questo è in C#:

Di solito, mi creo un metodo per fare l'estrazione, a cui passo la mia select e che lancio dal page_load:
public DataTable Connessione(string comando) { SqlConnection conn = new SqlConnection(); SqlCommand com = new SqlCommand(); conn.ConnectionString = "";//Qui inserisci la stringa di connessione if (conn.State == 0) //se la connessione non è già aperta, la apro conn.Open(); DataTable dtab = new DataTable(); SqlDataAdapter adp = new SqlDataAdapter(comando, conn); adp.Fill(dtab); conn.Close(); return dtab; }

Ora vediamo come richiamarlo e usarlo nel page_load dell'aspx di dettaglio:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Fammi poi sapere se è questo che intendevi.
Ciao,
PV
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