E possibile aprire una popup da un gridview passandoci un valore?
es:
nomepag.aspx?id=4
E possibile aprire una popup da un gridview passandoci un valore?
es:
nomepag.aspx?id=4
Ciao DeR
Questo è un link normale:
Se vuoi effettivamente realizzare un popup devi passare alla modalità TemplateField e lavorare nel codebehind sull'evento RowDataBoundcodice:<asp:HyperLinkField DataNavigateUrlFields="FieldId" DataNavigateUrlFormatString="nomepag.aspx?Id={0}" NavigateUrl="nomepag.aspx" Text="Apri" />
![]()
Marco Cavallo
WebMaster & Programmer
Il mio sito in continua evoluzione...
Vieni a trovarmi!
http://www.artcava.net/
codice:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView drv = (DataRowView)e.Row.DataItem; string sVal = drv.Row["valore"]; HyperLink HyperLink1 = (HyperLink)e.Row.FindControl("HyperLink1"); HyperLink1.Text = "Metti qui il testo del link"; HyperLink1.NavigateUrl = sVal; HyperLink1.Attributes.Add("onClick","javascript:PopUp(...);"); } }![]()
Marco Cavallo
WebMaster & Programmer
Il mio sito in continua evoluzione...
Vieni a trovarmi!
http://www.artcava.net/
Ho provato, ma non funziona.
Ho aggiunto un sqldatasource e un gridview alla pag, poi ho inserito la tua parte di codice, ma purtroppo non funziona
codice:<script runat="server"> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView drv = (DataRowView)e.Row.DataItem; string sVal = drv.Row["link"].ToString(); HyperLink HyperLink1 = (HyperLink)e.Row.FindControl("HyperLink1"); HyperLink1.Text = "Metti qui il testo del link"; HyperLink1.NavigateUrl = sVal; HyperLink1.Attributes.Add("onClick", "javascript:alert(...);"); } } </script> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:con %>" SelectCommand="SELECT * FROM [tb_paging]"></asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1" PageSize="5"> <Columns> <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="testo" HeaderText="testo" SortExpression="testo" /> <asp:BoundField DataField="link" HeaderText="link" SortExpression="link" /> </Columns> </asp:GridView>
Dove sbaglio?
Ciao DeR
Prima di tutto per usare l'evento GridView1_RowDataBound nel Code behind devi aggiungere nell'oggetto GridView la proprietà
Poi per l'href invece di un BoundField devi usare un TemplateFieldcodice:OnRowDataBound="GridView1_RowDataBound"
Invece di
Usacodice:<asp:BoundField DataField="link" HeaderText="link" SortExpression="link" />
Dovremmo già migliorare un po'...codice:<asp:TemplateField HeaderText="link"> <asp:HyperLink ID="HyperLink1" runat="server"></asp:HyperLink> </asp:TemplateField>
Fammi sapere
![]()
Marco Cavallo
WebMaster & Programmer
Il mio sito in continua evoluzione...
Vieni a trovarmi!
http://www.artcava.net/
Ho modificato cosi e funziona
Se puoi mi controlli lo script, modificandolo cosi funziona.codice:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView drv = (DataRowView)e.Row.DataItem; string sVal = drv.Row["id"].ToString(); HyperLink HyperLink1 = (HyperLink)e.Row.FindControl("HyperLink1"); HyperLink1.Text = "Apri"; HyperLink1.NavigateUrl = "javascript:info('" + sVal + "');"; //HyperLink1.Attributes.Add("onClick", "javascript:info('"+sVal+"');"); } } <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:con %>" SelectCommand="SELECT * FROM [tb_paging]"></asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1" PageSize="5" onRowDataBound="GridView1_RowDataBound"> <Columns> <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="testo" HeaderText="testo" SortExpression="testo" /> <asp:TemplateField HeaderText="link"> <ItemTemplate> <asp:HyperLink ID="HyperLink1" runat="server"></asp:HyperLink> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
Grazie 1000
Ciao DeR
Mi sembra di sì, a parte java-script, perché hai messo il trattino ("-")?
Felice che funzioni...
![]()
Marco Cavallo
WebMaster & Programmer
Il mio sito in continua evoluzione...
Vieni a trovarmi!
http://www.artcava.net/
Grzie per l'aiuto, cmq il trattino viene aggiunto quando uno scrive la parola javascript in questo forum.
Ciao DeR