Erste Summe der Werte einer bestimmten Spalte aus GridView
Ihn
Ich bin mit einem ASP.NET/VB.NET mit SQL-Server-2012.
Ich habe ein GridView-Spalte mit 3 Felder und 1 Feld Vorlage wie unten gezeigt:
<asp:GridView ID="grdItems" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource3" Font-Names="Tahoma" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="item_name" HeaderText="Item" SortExpression="item_name" />
<asp:BoundField DataField="item_cost" HeaderText="Cost (inc. VAT)" SortExpression="item_cost" />
<asp:BoundField DataField="item_quantity" HeaderText="Quantity" SortExpression="item_quantity" />
<asp:TemplateField HeaderText="Sub-Total (inc. VAT)">
<ItemTemplate>
<asp:Label ID="TextBox3" runat="server" Text='<%# Convert.ToInt32(Eval("item_quantity")) * Convert.ToDouble(Eval("item_cost"))%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<FooterTemplate>
<asp:Label ID="lblTotalPrice" runat="server" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center" VerticalAlign="Middle" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
Code hinter:
Imports System.Data.SqlClient
Imports System.Data
Partial Class ProjectReport
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim ProjectID = Session("project_id")
Session("ProjectID") = ProjectID
End Sub
Protected Sub grdItems_RowDataBound(sender As Object, e As GridViewRowEventArgs)
Dim totalPrice As Decimal = 0
If e.Row.RowType = DataControlRowType.DataRow Then
Dim lblPrice As Label = DirectCast(e.Row.FindControl("lblTotalPrice"), Label)
Dim price As Decimal = [Decimal].Parse(lblPrice.Text)
totalPrice += price
End If
If e.Row.RowType = DataControlRowType.Footer Then
Dim lblTotalPrice As Label = DirectCast(e.Row.FindControl("lblTotalPrice"), Label)
lblTotalPrice.Text = totalPrice.ToString()
End If
End Sub
End Class
Datenbindung()
Private Sub BindData()
Dim conn As New SqlConnection("Data Source=BRIAN-PC\SQLEXPRESS;Initial Catalog=master_db;Integrated Security=True")
Dim query As New SqlCommand("SELECT Items.item_name, Items.item_cost, project_items.item_quantity FROM Items INNER JOIN project_items ON items.item_id = project_items.item_id WHERE project_items.project_id = @parameter", conn)
query.Parameters.AddWithValue("@UserID", Session("ProjectID"))
Dim da As New SqlDataAdapter(query, conn)
da.SelectCommand = query
Dim table As New DataTable()
da.Fill(table)
grdItems.DataSource = table
grdItems.DataBind()
End Sub
Letzte Spalte (das Feld Vorlage,) multipliziert, die im Feld Menge mit dem Feld Kosten.
Wie berechne ich alle Werte (durch hinzufügen) in das Feld Vorlage eingeben?
wollen Sie zum anzeigen der Summe in der Fußzeile..
wenn möglich, ja!
Hinzufügen eines footertemplate und die Summe der Wert in ItemTemplate ein Label auf
wenn möglich, ja!
Hinzufügen eines footertemplate und die Summe der Wert in ItemTemplate ein Label auf
grdItems_RowDataBound
InformationsquelleAutor Brian | 2013-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die databinding-Ereignisse die Summe der Werte. Sehen dieses Beispiel und an Ihre Bedürfnisse anpassen:
Grundsätzlich, Sie halten das hinzufügen der Werte in der
RowDataBound
Veranstaltung und in derDataBound
Veranstaltung, die Sie ein label mit der Summe. Alternativ können Sie iterieren über Ihr Stromnetz in dieDataBound
event und alles summieren.Sie fehlt der Datenbindung Veranstaltung. Lesen Sie das Beispiel sorgfältig
Bitte finden Sie in den aktualisierten code. Ich erhalte eine Fehlermeldung in 'query' mir zu sagen, dass ein SqlCommand-Objekt kann nicht in eine Zeichenfolge konvertiert werden
InformationsquelleAutor nmat
Ich persönlich würde es tun, indem Sie zusätzlich (wie auch die Multiplikation) in der RowDataBound-Ereignis...
InformationsquelleAutor Laurent S.
Durchlaufen alle
DataRow
Zeilen auf derDataBound
- Ereignis des gridview-Steuerelements und fügen Sie den Wert von "TextBox3", um eine laufende Summe variable.InformationsquelleAutor cbillowes
Können Sie versuchen, diese...
hast u das property
showfooter =true
im NetzInformationsquelleAutor Nag
von Craig Lewis Johnson von FSSA - Indiana
InformationsquelleAutor user2390722