Ser ju bra ut, men har du testat at trace.write ut dina värden på lite olika ställen? alternativt köra debug så ser man ju oxå alla värden?
Enda jag undrar över är koden där du deklarerar priceTotal, bör väl vara protected (gissar lite)
4 svar · 510 visningar · startad av freddyk
Tjena
Skapar en liten faktura-generator på en webbsite. Lägger upp fakturarader i en gridview för utskrift och export. Men skulle vilja få ned en totalsumma i footern på gridviewen. Lyckas inte med det.
Har skapat funktioner som räknar ihop summor och totalsummor men kan inte få ut det i footern. Inget visas.
//Beräknar radtotal
protected decimal get_Amount(string price, string quantity)
{
decimal Amount;
decimal pris = Convert.ToDecimal(price);
int antal = Convert.ToInt32(quantity);
Amount = (pris * antal);
OrderTotal = (OrderTotal + Amount);
return Amount;
}
//Beräknar totalten på fakturan
protected decimal get_Faktura_Total()
{
return FakturaTotal;
}
Anger FakturaTotal i början av cs-filen. Kallar på RowDataBound vid laddning av GVn
protected void gvFakturaRader_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// add the UnitPrice and QuantityTotal to the running total variables
priceTotal += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem,"Pris"));
quantityTotal += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem,"Antal"));
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "Totalt:";
e.Row.Cells[1].Text = priceTotal.ToString("c");
e.Row.Cells[2].Text = quantityTotal.ToString("d");
e.Row.Cells[1].HorizontalAlign = e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Right;
e.Row.Font.Bold = true;
}
}
Har ngn gjort ngt liknande tidigare? Lösning? Kan tänka att det är som en shoppingvagn.... :)
Tacksam för all hjälp. Krisar ihop här ;)
Ser ju bra ut, men har du testat at trace.write ut dina värden på lite olika ställen? alternativt köra debug så ser man ju oxå alla värden?
Enda jag undrar över är koden där du deklarerar priceTotal, bör väl vara protected (gissar lite)
freguz skrev:
Ser ju bra ut, men har du testat at trace.write ut dina värden på lite olika ställen? alternativt köra debug så ser man ju oxå alla värden?
Enda jag undrar över är koden där du deklarerar priceTotal, bör väl vara protected (gissar lite)
Mjo. Vet inte om jag hänger på här men är den inte det?
Nedan visar jag för att summera raderna i Gvn...
//I GVn
<asp:TemplateField>
<HeaderTemplate>Summa</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblSumma" Visible='<%# !(bool) IsInEditMode %>' runat="server" Text='<%# get_Amount(Eval("Pris"),Eval("Antal")) %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" VerticalAlign="Top" Width="400px" />
</asp:TemplateField>
Men jag får följande felmeddelande...
"The best overloaded method match for 'nyfaktura.get_Amount(string, string)' has some invalid arguments"
Vad kan vara fel?
Eval("Pris") och Eval("Antal") ger säkert något annat än string då. Eval ger den typ som objektet är så om det är en double eller int och då försöker anropa get_Amount(string,string) så blir det fel.
Vad är det för typer i databasen?
ah ok. Det är ju int i databasens SP. Ska testa detta... Tack för tipset P!
Tillägg:
Det fungerade tyvärr inte. hmm... Samma problem...