congo.aspx和congo.cs和ViewCart.aspx

ShoppingCart 是Congo.cs中定义的一种自定义数据类型。它还伴随着BookOrder,也是在Congo.cs中定义。
ShoppingCart主要是对HashTable的包装。
它实现了一个名为_Orders的私有字段,该字段持有一个HashTable引用,ShoppingCart 还实现了一些公有方法这些方法使BookOrder对象能够被添加到HashTable中并被删除,
ShoppingCart还实现了一个名为Orders的公共属性,该属性在HashTable的ICollection接口中可用:
aspx:


congo.aspx.cs:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class congo : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

        
if (!IsPostBack)
        
{
           
            
string ConnectString = ConfigurationSettings.AppSettings["connectString"];
            SqlDataAdapter adapter 
= new SqlDataAdapter("select * from titles where price!=0", ConnectString);
            DataSet ds 
= new DataSet();
            adapter.Fill(ds);
            MyDataGrid.DataSource 
= ds;
            MyDataGrid.DataBind();
        }

    }


    
//用户调用该页面并单击“AddToCart”按钮时调用该方法
    /// <summary>
    
/// 该方法从DataGrid中检索产品ID及相应书籍的价格,并将
    
/// 它们封装到一个BookOrder对象中
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void OnItemCommand(Object sender,  DataGridCommandEventArgs e)
    
{
        
if (e.CommandName == "AddToCart")
        
{
            
//有两种方法可以得到这里的BookOrder、ShoppingCart
            
//1.把congo.cs放在App_Code文件夹内。
            
//2.把congo.cs编译成dll文件放在Bin文件夹内
            
//倾向于前者,便于查看Congo.cs的内容
            BookOrder order =
                
new BookOrder(e.Item.Cells[0].Text,e.Item.Cells[1].Text,Convert.ToDecimal(e.Item.Cells[2].Text.Substring(1)),1);

            
//global.asax中有Session_Start,这里的SessionID????
            ShoppingCart cart = (ShoppingCart)Session["MyShoppingCart"];
            
if (cart != null)
            
{
                cart.AddOrder(order);
            }

            Response.Write(
"<script>alert('success to add "+e.Item.Cells[1].Text+"')</script>");
        }

    }


    
protected void OnViewCart(Object sender, EventArgs e)
    
{
        Response.Redirect(
"ViewCart.aspx");
    }

}


global.asax:
<%@ Application Language="C#" %>

<script runat="server">

    
void Application_Start(object sender, EventArgs e) 
    
{
        
// Code that runs on application startup

    }

    
    
void Application_End(object sender, EventArgs e) 
    
{
        
//  Code that runs on application shutdown

    }

        
    
void Application_Error(object sender, EventArgs e) 
    

        
// Code that runs when an unhandled error occurs

    }


    
void Session_Start(object sender, EventArgs e) 
    
{
       
//为请求页面的用户创建一个会话
        Session["MyShoppingCart"= new ShoppingCart();
        
// Code that runs when a new session is started

    }


    
void Session_End(object sender, EventArgs e) 
    
{
        
// Code that runs when a session ends. 
        
// Note: The Session_End event is raised only when the sessionstate mode
        
// is set to InProc in the Web.config file. If session mode is set to StateServer 
        
// or SQLServer, the event is not raised.

    }

       
</script>
congo.cs(独立代码,在App_Code)中

ViewCart.aspx和aspx.cs:
 1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewCart.aspx.cs" Inherits="ViewCart" %>
 2
 3
 4<html xmlns="http://www.w3.org/1999/xhtml" >
 5<head runat="server">
 6    <title>Untitled Page</title>
 7</head>
 8<body>
 9    <form id="form1" runat="server">
10    <div>
11    <table width="100%" bgcolor="teal">
12    <tr>
13    <td>
14    <asp:Button ID="lblReturnShop" Text="Return to Shopping" OnClick="OnShop" runat="server" />
15    
16    </td>
17    </tr>
18    </table>
19    </div>
20    
21    <br />
22    <center>
23    <asp:DataGrid ID="MyDataGrid" AutoGenerateColumns="false" CellPadding="2"
24      BorderWidth="1" BorderColor="lightgray" Font-Names="Verdana"
25      Font-Size="8pt" GridLines="vertical" Width="90%" OnItemCommand="OnItemCommand" runat="server">
26      <Columns>
27      <asp:BoundColumn HeaderText="Item ID" DataField="ItemID">
28      </asp:BoundColumn>
29      
30      <asp:BoundColumn HeaderText="Title" DataField="Title">
31      </asp:BoundColumn>
32      <asp:BoundColumn HeaderText="Price" DataField="Price" DataFormatString="{0:C}"
33       HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="right">
34       </asp:BoundColumn>
35       
36       <asp:BoundColumn HeaderText="Quantity" DataField="Quantity" 
37        HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center">
38       </asp:BoundColumn>
39       <asp:ButtonColumn HeaderText="Action" Text="Remove"
40        HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" CommandName="RemoveFromCart">
41        </asp:ButtonColumn>
42      </Columns>
43      
44      <HeaderStyle BackColor="teal" ForeColor="white" Font-Bold="true" />
45      <ItemStyle BackColor="white" ForeColor="darkblue" />
46      <AlternatingItemStyle BackColor="beige" ForeColor="darkBlue" />
47      </asp:DataGrid>
48    </center>
49    <h3><asp:Label ID="Total" runat="server"></asp:Label></h3>
50    </form>
51</body>
52</html>
53
ViewCart.aspx.cs:
viewCart.cs

原文地址:https://www.cnblogs.com/simhare/p/822899.html