|
Subject:
|
Help with totals
|
|
Posted By:
|
rsm42
|
Post Date:
|
12/15/2006 12:18:11 PM
|
Hi,
I'm working on a checkout page using asp.net 1.1. and vb2003. In my checkout page, I need to
calculate the total of the items currently in the cart. What's the best way to do this ? An
examples would help - thanks. Here's my code for reference :
<%@ Page Language="VB" Debug="true" %> <%@ import Namespace="System.Data.OleDb" %> <script runat="server">
Function DisplayCart() As System.Data.IDataReader Dim strConnString As String =
ConfigurationSettings.AppSettings.Get("ConnectionString") strConnString = String.Format(strConnString,
Server.MapPath("\db\nwguitars.mdb")) Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(strConnString) Dim queryString As String = "SELECT tblCartItems.intCartitemID,
tblCartItems.intProductID, tblMake.strMake, tblProducts.strProductName, "& _ "tblType.strTypeDetails, tblColour.strColour, tblCartItems.intQuantityOrder,
tblProducts.curSalePrice FROM tblType INNER JOIN "& _ "((tblMake INNER JOIN (tblColour INNER JOIN tblProducts ON tblColour.intColourID
= tblProducts.intColourID) ON tblMake.intMakeID = tblProducts.intMakeID) "& _ "INNER JOIN tblCartItems ON tblProducts.intProductID =
tblCartItems.intProductID) ON tblType.intTypeID = tblProducts.intTypeID WHERE
[tblCartItems].[intCartID] = " & Session("CartID") & " ; " Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand dbCommand.CommandText = queryString dbCommand.Connection = dbConnection dbConnection.Open Dim dataReader As System.Data.IDataReader =
dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection) Return dataReader End Function Sub Page_Load() If Not IsPostback Then CartStatus() End If End Sub Sub CartStatus() If Session("CartID") Is Nothing Then pnlShowText.Visible = True pnlShowItems.Visible = False Else pnlShowItems.Visible = True pnlShowText.Visible = False dgCart.DataSource = DisplayCart() dgCart.DataBind() End If End Sub Sub dgCart_Edit(sender As Object, e As DataGridCommandEventArgs) dgCart.EditItemIndex = e.Item.ItemIndex dgCart.Datasource = DisplayCart() dgCart.DataBind() lblCart.Text = Session("CartID") lblCart.visible=True btnSubmit.Visible=False End Sub Sub dgCart_Cancel(sender As Object, e As DataGridCommandEventArgs) dgCart.EditItemIndex = -1 btnSubmit.Visible=True dgCart.Datasource = DisplayCart() dgCart.DataBind() End Sub Sub dgCart_Update(sender As Object, e As DataGridCommandEventArgs) Dim strConnString As String =
ConfigurationSettings.AppSettings.Get("ConnectionString") strConnString = String.Format(strConnString,
Server.MapPath("\db\nwguitars.mdb")) Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(strConnString) Dim intCartitemID As Integer Dim txtQuantity As TextBox Dim intQuantity As Integer intCartitemID = dgCart.DataKeys(e.Item.ItemIndex) txtQuantity = e.Item.FindControl("txtQuantity") intQuantity = txtQuantity.Text Dim strSQL As String = "UPDATE [tblCartItems] SET [intQuantityOrder]=@Quantity
WHERE "& _ "intCartitemID = @intCartitemID" Dim dbCommand As New OleDbCommand(strSQL, dbConnection) Dim cmd As New OleDbCommand dbCommand.Parameters.Add("@Quantity", intQuantity) dbCommand.Parameters.Add("@intCartitemID", intCartitemID) dbConnection.Open() dbCommand.ExecuteNonQuery() dbConnection.Close() dgCart.EditItemIndex = -1 dgCart.DataSource = DisplayCart() dgCart.DataBind() End Sub Sub dgCart_Delete(Sender As Object, E As DataGridCommandEventArgs) Dim strConnString As String =
ConfigurationSettings.AppSettings.Get("ConnectionString") strConnString = String.Format(strConnString,
Server.MapPath("\db\nwguitars.mdb")) Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(strConnString) Dim intCartitemID As Integer intCartitemID = dgCart.DataKeys(e.Item.ItemIndex) Dim cmd As New OleDbCommand Dim strSQL As String = "DELETE FROM [tblCartItems] WHERE
([tblCartItems].[intCartitemID] = @intCartitemID)" Dim dbCommand As New OleDbCommand(strSQL, dbConnection) dbCommand.Parameters.Add("@intCartitemID", intCartitemID) dbCommand.Parameters("@intCartitemID").Value =
dgCart.DataKeys(CInt(E.Item.ItemIndex)) dbConnection.Open() dbCommand.ExecuteNonQuery() dbConnection.Close() dgCart.DataSource = DisplayCart() dgCart.DataBind() End Sub Sub btnSubmit_Click(sender As Object, e As EventArgs) Response.Redirect("login.aspx") End Sub
</script> <html> <head> <link href="\css\liststyle.css" type="text/css" rel="stylesheet" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script language="JavaScript" type="text/JavaScript">
//--> </script> </head> <body> <hr class="navbar" /> <br /> <form runat="server"> <h2 align="center">View Cart </h2> <table height="50" width="400" align="center"> <tbody> <tr> <td> <asp:Panel class="heading" id="pnlShowText" runat="server" Width="390px"
Height="40px"> <p align="center"> Your cart is empty - Please add an item from our shop </p> </asp:Panel> </td> </tr> </tbody> </table> <table height="50" width="430" align="center"> <tbody> <tr> <td width="416"> <asp:Panel id="pnlShowItems" runat="server" Width="400px"> <div align="center"> <asp:DataGrid id="dgCart" runat="server"
OnUpdateCommand="dgCart_Update" OnEditCommand="dgCart_Edit" OnCancelCommand="dgCart_Cancel"
OnDeleteCommand="dgCart_Delete" AutoGenerateColumns="False" ShowFooter="True"> <Columns> <asp:BoundColumn DataField="intProductID" ReadOnly="True"
HeaderText="ProductID"> <HeaderStyle horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:BoundColumn DataField="strMake" ReadOnly="True"
HeaderText="Manufacturer"> <HeaderStyle horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:BoundColumn DataField="strProductName"
ReadOnly="True" HeaderText="Product Name"> <HeaderStyle wrap="False"
horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:BoundColumn DataField="strTypeDetails"
ReadOnly="True" HeaderText="Product Type"> <HeaderStyle wrap="False"
horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:BoundColumn DataField="strColour" ReadOnly="True"
HeaderText="Colour"> <HeaderStyle horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:TemplateColumn HeaderText="Quantity"> <HeaderStyle horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> <ItemTemplate> <%# DataBinder.Eval(Container,
"DataItem.intQuantityOrder") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="txtQuantity" runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem.intQuantityOrder") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="curSalePrice" ReadOnly="True"
HeaderText="Price(#163;)"> <HeaderStyle horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> </asp:BoundColumn> <asp:EditCommandColumn ButtonType="LinkButton"
UpdateText="Update" CancelText="Cancel" EditText="Edit Quantity"> <HeaderStyle wrap="False"
horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> <FooterStyle wrap="False"></FooterStyle> </asp:EditCommandColumn> <asp:ButtonColumn Text="Delete" CommandName="Delete"> <HeaderStyle wrap="False"
horizontalalign="Center"></HeaderStyle> <ItemStyle horizontalalign="Center"></ItemStyle> <FooterStyle wrap="False"></FooterStyle> </asp:ButtonColumn> </Columns> </asp:DataGrid> <br /> </div> <div align="center"> <br /> </div> <div align="center"> <table height="50" width="430" border="0"> <tbody> <tr> <td align="middle"> <asp:Button id="btnSubmit"
onclick="btnSubmit_Click" runat="server" cssclass="frmbtn" width="90px" Text="Submit
Order"></asp:Button> </td> </tr> </tbody> </table> </div> Total: <asp:Label id="lblTotal" runat="server"></asp:Label> </asp:Panel> </td> </tr> </tbody> </table> </form> </body> </html>
|
|