Shopping cart
Download
1 / 31

Shopping Cart - PowerPoint PPT Presentation


  • 440 Views
  • Updated On :

Shopping Cart ASP.NET State Management Session: User state Application: Application state Cache Static variables: Public Shared interestRate as Single Demo:StateTest2.aspx dim msg1, msg2, msg3 as string public shared msg4 as string sub Page_Load() if not page.ispostBack then

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Shopping Cart' - emily


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Asp net state management l.jpg
ASP.NET State Management

  • Session: User state

  • Application: Application state

  • Cache

  • Static variables:

    • Public Shared interestRate as Single

  • Demo:StateTest2.aspx


Slide3 l.jpg

dim msg1, msg2, msg3 as string

public shared msg4 as string

sub Page_Load()

if not page.ispostBack then

msg1="hi one"

msg2="hi two"

msg3="hi three"

msg4="hi four"

response.write("First time loading page. the message one is:" + msg1 + "<br>")

response.write("First time loading page. the message two is:" + msg2 + "<br>")

response.write("First time loading page. the message three is:" + msg3 + "<br>")

response.write("First time loading page. the message four is:" + msg4 + "<br>")

session("myMsg1")=msg1

application("myMsg2")=msg2

cache("myMsg3")=msg3

else

msg1=session("myMsg1")

msg2=application("myMsg2")

msg3=cache("myMsg3")

response.write("After the fist page loading, the message one is:" + msg1 + "<br>")

response.write("After the fist page loading, the message two is:" + msg2 + "<br>")

response.write("After the fist page loading, the message three is:" + msg3 + "<br>")

response.write("After the fist page loading, the message four is:" + msg4 + "<br>")

end if

end sub


Shopping cart4 l.jpg
Shopping Cart

  • Search and display product information

  • Add item to cart

  • View cart contents

  • Check out


Shopping cart example l.jpg
Shopping Cart Example

  • Database:

    • WebCustomer: CustID, CustName, Addr, Phone

    • WebOrder: OrderID, CustID, OrderDate, CreditCardType, CreditCardNo

    • WebLine: OrderID, PID, Qty

    • WebProduct: Pid, Pname, Price, UnitsInStock

  • Session ID is used for OrderID

    • Other choices? Visitor Counter?

  • Login user using cookie

  • Each item is modeled as a class, and items are collected in a collection before added to the database.


Implementing shopping cart as class l.jpg
Implementing Shopping Cart as Class

  • Shopping Cart Properties:

    • Public oid As String

    • Public cid As String

    • Public ODate As DateTime

    • Public CreditCardType As String

    • Public CreditCardNo as String

    • Public CollCartLine As New ArrayList()

  • Methods: AddItem, DeleteItem, ViewCart, CheckOut

  • DetailLine Properties:

    • OID

    • PID

    • Pname

    • Price

    • Qty

    • Amount = Qty * Price


Adding buttons to a bound datagrid l.jpg
Adding Buttons to a Bound DataGrid

  • Use DataGrid/Columns editor

    • Bound columns, Button columns, Template columns

  • Button event procedures

    • CodeWIndow/DataGrid

      • DeleteCommand

      • EditCommand

      • CancelCommand

      • UpdateCommand

    • e As System.Web.UI.WebControls.DataGridCommandEventArgs


Edit delete customer record l.jpg
Edit/Delete Customer Record

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not Page.IsPostBack Then

OleDbDataAdapter1.Fill(DataSet31, "customer")

DataGrid1.DataBind()

Session("MyDs") = DataSet31

Else

DataSet31 = Session("MyDs")

End If

End Sub

Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand

DataGrid1.EditItemIndex = e.Item.ItemIndex

DataGrid1.DataBind()

End Sub


Slide9 l.jpg

Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

DataSet31.Tables("Customer").Rows(e.Item.ItemIndex).Item("rating") = CType(e.Item.Cells(4).Controls(0), TextBox).Text

DataGrid1.EditItemIndex = -1

DataGrid1.DataBind()

Session("MyDs") = DataSet31

End Sub

Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand

DataGrid1.EditItemIndex = -1

DataGrid1.DataBind()

End Sub


Slide10 l.jpg

Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

DataSet31.Tables("customer").Rows.RemoveAt(e.Item.ItemIndex)

DataGrid1.DataBind()

Session("MyDs") = DataSet31

End Sub


Datagrid button commands examples l.jpg
DataGrid Button Commands Examples ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

  • DeleteCommand:

    DataSet31.Tables("customer").Rows.RemoveAt(e.Item.ItemIndex)

  • Edit Command:

    • DataGrid1.EditItemIndex = e.Item.ItemIndex

  • Cancel command:

    • DataGrid1.EditItemIndex = -1

  • Update command:

    DataSet31.Tables("Customer").Rows(e.Item.ItemIndex).Item("rating") = CType(e.Item.Cells(4).Controls(0), TextBox).Text

    • DataGrid1.EditItemIndex = -1

  • Note: CType(e.Item.Cells(4).Controls(0), TextBox)


Datagrid button commands example l.jpg

Dim objDataSet As New DataSet ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

If Not Page.IsPostBack Then

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OleDbConnection(strConn)

Dim strSQL As String = "select pid,description,price from product;"

Dim objAdapter As New OleDbDataAdapter(strSQL, objConn)

objAdapter.Fill(objDataSet, "Product")

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Product"

DataGrid1.DataBind()

Session("MyDs") = objDataSet

Else

objDataSet = Session("MyDs")

End If

End Sub

Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand

DataGrid1.EditItemIndex = e.Item.ItemIndex

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Product"

DataGrid1.DataBind()

End Sub

DataGrid Button Commands Example


Slide13 l.jpg

Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

objDataSet.Tables("Product").Rows(e.Item.ItemIndex).Item("Price") = CDbl(CType(e.Item.Cells(4).Controls(0), TextBox).Text)

DataGrid1.EditItemIndex = -1

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Product"

DataGrid1.DataBind()

Session("MyDs") = objDataSet

End Sub

Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand

DataGrid1.EditItemIndex = -1

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Product"

DataGrid1.DataBind()

End Sub

Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

objDataSet.Tables("Product").Rows.RemoveAt(e.Item.ItemIndex)

DataGrid1.DataSource = objDataSet

DataGrid1.DataMember = "Product"

DataGrid1.DataBind()

Session("MyDs") = objDataSet

End Sub


Adding textbox and button and to a bound datagrid l.jpg
Adding Textbox and Button and to a Bound DataGrid ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

  • DataGrid Properties/Columns editor:

    • Template column:

      • HeaderText: This text will be used as column name

  • Web Page’s HTML view:

    • Add ItemTemplate to the Template column tag

    • Add Control’s tag

  • Event: ItemCommand


Example l.jpg
Example ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

<asp:TemplateColumn HeaderText="Quantity">

<ItemTemplate>

<asp:TextBox id="txtQty" Width="70“ runat="server"></asp:TextBox>

</ItemTemplate>

</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="AddToCart">

<ItemTemplate>

<asp:Button Text="AddToCart" Runat="server"></asp:Button>

</ItemTemplate>

</asp:TemplateColumn>


How to retrieve data from a cell in the selected row l.jpg
How to retrieve data from a cell in the selected row? ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

  • Response.Write(CType(e.Item.Cells(4).Controls(1), TextBox).Text)

  • Response.Write(CType(e.Item.Cells(4).FindControl("txtQty"), TextBox).Text)

    End Sub

    Note: Cells(4).Controls(1)

    Controls(0) is the cell itself, Controls(1) is the 2nd control in the cell.


If there are two buttons created by itemtemplate how to tell which button is clicked l.jpg
If there are two buttons created by ItemTemplate, how to tell which button is clicked?

  • Use the ItemCommand procedure

  • Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

  • If e.CommandSource.text = "View" Then

  • Response.Write("You click View button")

  • End If

  • If e.CommandSource.text = "Add" Then

  • Response.Write("You click Add button")

  • End If

  • End Sub


Shopcart class l.jpg
ShopCart Class tell which button is clicked?

Public Class ShopCart

Public oid As String

Public cid As String

Public ODate As DateTime

Public CreditCardType As String

Public CreditCardNo As String

Public CollCartLine As New ArrayList()

Public ReadOnly Property CartTotal() As Double

Get

Dim item As New CartLine

Dim total As Double

Dim itemIndex As Integer

For Each item In CollCartLine

total = total + item.price * item.qty

Next

CartTotal = total

End Get

End Property


Additem method l.jpg
AddItem Method tell which button is clicked?

Public Sub AddItem(ByVal line As CartLine)

Dim item As New CartLine()

Dim incart As New Boolean()

incart = False

If CollCartLine.Count > 0 Then

For Each item In CollCartLine

If item.pid = line.pid Then

item.qty = line.qty

incart = True

Exit For

End If

Next

End If

If incart = False Then

CollCartLine.Add(line)

End If

End Sub


Slide20 l.jpg

Public Sub deleteItem(ByVal deleteIndex As Integer) tell which button is clicked?

CollCartLine.RemoveAt(deleteIndex)

End Sub

Public Sub checkOut()

Dim objLine As New CartLine()

Dim strSQL As String

Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

Dim objConn As New OleDbConnection()

objConn.ConnectionString = strConn

Dim objComm As New OleDbCommand()

objConn.Open()

objComm.Connection = objConn

objComm.CommandType = CommandType.Text

strSQL = "insert into weborder values ('" & oid & "', '" & cid & "', #" & ODate.ToString & "#, '" & CreditCardType & "','" & CreditCardNo & "')"

objComm.CommandText = strSQL

objComm.ExecuteNonQuery()

For Each objLine In CollCartLine

strSQL = "insert into webline values ('" & objLine.oid & "', '" & objLine.pid & "', " & CStr(objLine.qty) & ")"

objComm.CommandText = strSQL

objComm.ExecuteNonQuery()

Next

End Sub

End Class


Shopping cart detail line l.jpg
Shopping Cart Detail Line tell which button is clicked?

Public Class CartLine

Private hiddenoid As String

Private hiddenpid As String

Private hiddenpname As String

Private hiddenprice As Double

Private hiddenqty As Integer

Public Property oid() As String

Get

oid = hiddenoid

End Get

Set(ByVal Value As String)

hiddenoid = Value

End Set

End Property

Public Property pid() As String

Get

pid = hiddenpid

End Get

Set(ByVal Value As String)

hiddenpid = Value

End Set

End Property


Slide22 l.jpg

Public Property pname() As String tell which button is clicked?

Get

pname = hiddenpname

End Get

Set(ByVal Value As String)

hiddenpname = Value

End Set

End Property

Public Property price() As Double

Get

price = hiddenprice

End Get

Set(ByVal Value As Double)

hiddenprice = Value

End Set

End Property

Public Property qty() As Integer

Get

qty = hiddenqty

End Get

Set(ByVal Value As Integer)

hiddenqty = Value

End Set

End Property

Public ReadOnly Property amount() As Double

Get

amount = qty * price

End Get

End Property

End Class


Addtocart button event procedure l.jpg
AddToCart Button Event Procedure tell which button is clicked?

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

MyCart = Session("MyShopCart")

Dim objLine As New CartLine()

objLine.oid = Session.SessionID

objLine.pid = e.Item.Cells(0).Text

objLine.pname = e.Item.Cells(1).Text

objLine.price = CDbl(e.Item.Cells(2).Text)

objLine.qty = CInt(CType(e.Item.Cells(1).FindControl("tbox"), TextBox).Text)

MyCart.AddItem(objLine)

Response.Write("number of items in cart:" & CStr(MyCart.CollCartLine.Count))

End Sub


Delete button procedure l.jpg
Delete Button Procedure tell which button is clicked?

Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand

myCart.deleteItem(e.Item.ItemIndex)

Session("MyShopCart") = myCart

DataGrid1.DataSource = myCart.CollCartLine

DataGrid1.DataBind()

txtAmount.Text = myCart.CartTotal.ToString

End Sub


Checkout procedure l.jpg
CheckOut Procedure tell which button is clicked?

Dim MyCart As New ShopCart()

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

MyCart = Session("MyShopCart")

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MyCart.oid = Session.SessionID

MyCart.cid = Session("cid")

MyCart.ODate = DateTime.Now()

MyCart.CreditCardType = RadioButtonList1.SelectedItem.Text

MyCart.CreditCardNo = TextBox1.Text

MyCart.checkOut()

Response.Write("<p align='center'><font size='5'><b>Thank you for shopping at My.Com</b></font></p>")

Session.Abandon()

End Sub


Web service l.jpg
Web Service tell which button is clicked?

  • XML Web Service

  • Web services are classes that are stored on the web which can instantiate and use in both Windows and Web applications.


A web service example aspet testwebservice asmx l.jpg
A Web Service Example tell which button is clicked?ASPET/TestWebService.ASMX

<%@ WebService Class="CustomerInfo" %>

imports System.Web.Services

imports System

imports System.Data

imports System.Data.Oledb

Public Class CustomerInfo

<webMethod()> public Function GetCname(ByVal CID as String) as String

dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = c:\sales2k.mdb"

dim objConn as new OledbConnection(strConn)

dim strSQL as string = "select * from customer where CID = '" & CID & "';"

dim objComm as new OledbCommand(strSQL,objConn)

dim Results as string

objConn.open()

dim objDataReader as oledbDataReader

objDataReader=objComm.executeReader()

objDataReader.read()

return objDataReader("Cname")

end function


Creating a web service using vs l.jpg
Creating a Web Service Using VS tell which button is clicked?

  • New Project/ASP.Net Web Service


Web service description language wsdl l.jpg
Web Service Description Language (WSDL) tell which button is clicked?

  • A WSDL file is an XML document containing a complete description of the web service. It shows a web service’s name, methods, and parameter types.

  • Help page: After entering web service’s URL, a help page is displayed. You can click the Service Description link to see the WSDL file.


Consuming web services from a windows application l.jpg
Consuming Web Services from a Windows Application tell which button is clicked?

  • Add a web reference to the web service.

  • Declare a web service class variable.

    • Dim myWebService As New dchaolaptop.CustomerInfo()

  • Demo: VBNetExample/UseWebService


Universal description discovery and integration uddi l.jpg
Universal Description, Discovery, and Integration (UDDI) tell which button is clicked?

  • A directory service for web services.

    • http://uddi.org