518 messaggi dal 23 febbraio 2002
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


                    <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):
    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 ???
Beh tramite CommandSource hai il riferimento al bottone. Interrogando Parent.Parent dovresti risalire alla riga e poi cercare la cella che ti interessa, ma non è bello come giro.
Puoi usare grid.Fields[0].ExtractValuesFromCell ma anche questo non mi piace un granché.
Imposta DataKeysName con il nome del campo che vuoi memorizzare e lo recuperi con grid.DataKeys[numero di riga][0]

Ciao

Il mio blog
Homepage
518 messaggi dal 23 febbraio 2002
FUNZIONA!!!!

Graziie mille!!!
1 messaggio dal 11 settembre 2003
La soluzione più pratica e veloce mi sembra la seguente: inserire un bottone con CommandName e CommandArgument in un TemplateField e riprendere il tutto nell'evento RowCommand (alla vecchia maniera).

Salud

Temenos

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.