Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c#] popup da gridview

  1. #1
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975

    [c#] popup da gridview

    E possibile aprire una popup da un gridview passandoci un valore?


    es:
    nomepag.aspx?id=4
    Ciao DeR

  2. #2

    Questo è un link normale:

    codice:
    <asp:HyperLinkField DataNavigateUrlFields="FieldId" DataNavigateUrlFormatString="nomepag.aspx?Id={0}" NavigateUrl="nomepag.aspx" Text="Apri" />
    Se vuoi effettivamente realizzare un popup devi passare alla modalità TemplateField e lavorare nel codebehind sull'evento RowDataBound

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  3. #3
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975
    un piccolissimo esempio?
    Ciao DeR

  4. #4

    Prova così

    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/

  5. #5
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975
    Grazie 1000 provero quanto prima
    Ciao DeR

  6. #6
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975
    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

  7. #7

    Qui, qui e qui...

    Prima di tutto per usare l'evento GridView1_RowDataBound nel Code behind devi aggiungere nell'oggetto GridView la proprietà
    codice:
    OnRowDataBound="GridView1_RowDataBound"
    Poi per l'href invece di un BoundField devi usare un TemplateField

    Invece di
    codice:
    <asp:BoundField DataField="link" HeaderText="link" SortExpression="link" />
    Usa
    codice:
    <asp:TemplateField  HeaderText="link">
       <asp:HyperLink ID="HyperLink1" runat="server"></asp:HyperLink>
    </asp:TemplateField>
    Dovremmo già migliorare un po'...
    Fammi sapere

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  8. #8
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975
    Ho modificato cosi e 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>
    Se puoi mi controlli lo script, modificandolo cosi funziona.

    Grazie 1000
    Ciao DeR

  9. #9
    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/

  10. #10
    Utente di HTML.it L'avatar di DeR
    Registrato dal
    Mar 2003
    Messaggi
    975
    Grzie per l'aiuto, cmq il trattino viene aggiunto quando uno scrive la parola javascript in questo forum.
    Ciao DeR

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.