Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [ASP.NET 2.0] # GridView estrarre un valore

    Dato un GridView con 4 Campi:

    ImageField | BoundField | HyperLinkField | ButtonField
    ---------------------------------------------------------------

    che Popolo tramite un "SqlDataSource"

    da un Database che contiene la Tabella "Portfolio" con i campi:
    ID_Portfolio(primary key), Testo, Img


    codice:
                        <asp:GridView ID="GridView1" PageSize="3" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDettagliSource">
                            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <Columns>
                                <asp:ImageField DataAlternateTextField="ID_Portfolio" DataImageUrlField="Img" HeaderText="Immagine">
                                    <ControlStyle Width="70px" />
                                    <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
                                </asp:ImageField>
                                <asp:BoundField DataField="Testo" HeaderText="Descrizione">
                                    <ItemStyle VerticalAlign="Top" Width="300px" Font-Size="12px" HorizontalAlign="Left" />
                                </asp:BoundField>
                                <asp:HyperLinkField HeaderText="Dettagli" DataNavigateUrlFields="ID_Portfolio" DataNavigateUrlFormatString="ingrandimento.aspx?id={0}" Text="(dettagli...)">
                                    <ControlStyle Font-Bold="False" Font-Italic="True" />
                                    <ItemStyle VerticalAlign="Bottom" Font-Bold="False" Font-Italic="True" Font-Size="12px" HorizontalAlign="Left" />
                                </asp:HyperLinkField>
                                <asp:ButtonField ButtonType="Image" CommandName="Add" HeaderText="Add" ImageUrl="~/images/cart.gif" Text="Aggiungi al Carrello">
                                    <ControlStyle Font-Italic="False" />
                                    <ItemStyle Font-Italic="False" HorizontalAlign="Right" VerticalAlign="Bottom" Width="50px" />
                                    <HeaderStyle HorizontalAlign="Right" />
                                </asp:ButtonField>
                            </Columns>
                            <SelectedRowStyle BackColor="#E2DED6" ForeColor="#333333" Font-Bold="True" />
                            <PagerStyle BackColor="#5D7B9D" ForeColor="White" HorizontalAlign="Center" Font-Bold="False" />
                            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                            <EditRowStyle BackColor="#999999" />
                            <PagerSettings Mode="NumericFirstLast" />
                        </asp:GridView>

    Vorrei estrarre tramite il ButtonField il Valore dell'ID_Portfolio e non l'Indice del comando(Add) come la maggior parte delle guide dicono,

    Con questo si estrae l'Indice del comando(Add):
    codice:
        Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
            If e.CommandName.Equals("Add") Then
                Dim index As Integer = Convert.ToInt32(e.CommandArgument)
            End If
        End Sub
    Vorrei inserire nel Carrello l'ID_Portfolio....

    Si puo' fare ???

  2. #2
    Utilizza un Select Field per intercettare, tramite l'evento SelectedIndexChanged, l'indice o la DataKey associata al record selezionato (ricordati di impostare la DataKey nelle proprietà della GridView).

    Questo nel GridView:

    codice:
    <asp:GridView .... OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ...>
    <asp:CommandField ShowSelectButton="True" />
    ....
    </asp:GridView>
    E questo nel tuo codice c# (o vb..):

    codice:
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Write(GridView1.SelectedDataKey.Value.ToString());
        }

  3. #3
    Ma a quale colonna applico l'ID_Portfolio che il ButtonField non ha proprieta' Data ???

  4. #4
    No, petta: la GridView deve avere come DataKeyNames (proprietà che trovi nell'elenco) l'ID_Portfolio.
    In questo modo quando selezioni un record tramite il Select Button Field (e non un semplice Button Field) avrai a disposizione, nell'evento SelectedIndexChanged, il valore ID_Portfolio del record selezionato (o meglio.. "cliccato").


  5. #5
    OK! ci sono arrivato, funziona tutto ora, grazie mille!!!

    A presto, ciao!

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.