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

    Gestione Totale Riga GridView

    Salve a tutti,

    sto iniziando adesso a cimentarmi con asp.net, e mi trovo di fronte ad un problema che al momento non riesco a capire come risolvere.

    Ho una GridView con il binding ad un sqldatasource.

    In riga ho una serie di colonne che rappresentano delle quantità. Ora il mio problema è che in fase di editing della riga, vorrei aggiornare dinamicamente il totale delle quantità che inserisco e popolare con questo valore una colonna di totale sulla stessa riga.

    Come posso fare ad ottenere questo? Ho letto in giro ma non sono riuscito a trovare nulla che potesse fare al caso mio.

    Grazie in anticipo a chi vorrà aiutarmi.
    Grazie a chi vorrà aiutarmi

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ci sarà sicuramente un metodo più elegante, ma questo va:

    ASPX
    codice:
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" DataSourceID="sorgentedati">
        <Columns>
            <asp:BoundField DataField="quantita1" HeaderText="Q1" />
            <asp:BoundField DataField="quantita2"  HeaderText="Q2"  />
            
            <asp:TemplateField>
            <ItemTemplate>
            Tot: <asp:Label ID="lbTot" runat="server" Text="--"></asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
    
            <asp:CommandField HeaderText="Opzioni" ShowEditButton="true" />
        </Columns>
        </asp:GridView>
    VB:
    codice:
        Protected Sub gv_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowCreated
            If e.Row.RowType = DataControlRowType.DataRow Then
                If e.Row.RowIndex = CInt(Session("indiceriga")) Then
                    Dim tot As Label = DirectCast(e.Row.Cells(2).FindControl("lbtot"), Label)
                    If Not IsNothing(Session("tot")) Then
                        tot.Text = Session("tot")
                    End If
                End If
            End If
        End Sub
    
        Protected Sub gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gv.RowUpdating
            Dim q1 As Integer = CInt(e.NewValues("quantita1"))
            Dim q2 As Integer = CInt(e.NewValues("quantita2"))
            Session("tot") = 0
            Session("tot") = q1 + q2
            Session("indiceriga") = e.RowIndex
        End Sub

  3. #3
    Scusa il totale delle quantita' inizialmente come lo ricavi? da db?
    Non piangere perchè qualcosa è finito, ma sorridi perchè è accaduto...
    I'll be the king of World

    Il tennis è bello, ma Roger lo è di più...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.