匿名购物车

来源:百度文库 编辑:神马文学网 时间:2024/10/04 17:48:53
快速回顾
  1.允许匿名需要设置哪些东西
        1. mode="Forms" />
        2.enabled="true"/>
        3.automaticSaveEnabled="true" enabled="true">
          
            name="grpUserName">
              name="UserName" allowAnonymous="true" type="String" serializeAs="Binary"/>
            
          

         
  2.匿名购物车如何实现:即当用户admin登陆的时候,匿名选的购物车会自动加到admin的购物车
    1.Web.config配置里再加一个组,其中type="ShoppingCart"对应一个类
         name="grpShoppingCart">
           name="MyCart" allowAnonymous="true" type="ShoppingCart" serializeAs="Binary"/>
         
    2.Global.asax代码Profile_OnMigrateAnonymous
    3.基本的购物车功能:
       1.点AddToCart将该行数据添加到购物车(Profile里的MyCart.items,而且可以是匿名的)
       2.购物车要和Profile里的集合MyCart.items绑定

 

1.分为2步:允许匿名用户,和匿名用户的购物车在登陆的时候保存
  1.允许匿名用户
      1.新建一个网站,右键网站添加新项(Web.config),设置3个地方  

        1. mode="Forms" />
        2.enabled="true"/>
        3.automaticSaveEnabled="true" enabled="true">
          
            name="grpUserName">
              name="UserName" allowAnonymous="true" type="String" serializeAs="Binary"/>
            
          

         

      2.在页面Default.aspx里拖一个Label,在页面的Load事件里写如下代码后,保存运行,看到匿名Id      

       if (Profile.IsAnonymous){ lbl_AnonUser.Text Profile.UserName;}
        else{lbl_AnonUser.Text "";}

   2.允许匿名购物:即当用户admin登陆的时候,匿名选的购物车会自动加到admin的购物车
     条件:需要有数据库,购物车,会员用户,需要一个方法将匿名购物车加到登陆用户购物车里
      1.数据库(添加一个NorthWind,并在Web.config里配置好连接字符串)
      2.购物车:在App_Code里加CartItem和ShoppingCart 2个类,并声明[Serializable]特性


[Serializable]
public class CartItem
{
    public CartItem()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    public CartItem(string itemName,decimal itemPrice,int count)
    {
        this.ItemName itemName;
        this.ItemPrice itemPrice;
        this.Count count;
    }
    private string itemName;

    public string ItemName
    {
        get return itemName; }
        set itemName value; }
    }
    private decimal itemPrice;

    public decimal ItemPrice
    {
        get return itemPrice; }
        set itemPrice value; }
    }
    private int count;

    public int Count
    {
        get return count; }
        set count value; }
    }
}
[Serializable]
public class ShoppingCart
{
    public ShoppingCart()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    private List items new List();

    public List Items
    {
        get return items; }
        set items value; }
    }

}3.会员用户:用Asp.net配置创建用户,这样系统会自动创建一个数据库AspNetSqlProfileProvider
        然后配置好Web.config,profile的defaultProvider不设置会默认AspNetSqlProfileProvider数据库          
点Visual Studio解决方案最右边的Asp.Net配置-->选 安全-->点 创建用户(密码要大于7位并有个特殊字符,如!@#¥%……&*,比如我设置的密码:admin@admin) 完成后就可以关闭页面了
version="1.0"?>


    
    
        name="NorthwindCNConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NorthwindCN.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    

    
        
        debug="true">
            
                assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

        
    mode="Forms">
      defaultUrl="Default.aspx" loginUrl="Default.aspx"/>
    
        enabled="true"/>
        automaticSaveEnabled="true" enabled="true">
            
                name="grpUserName">
                    name="UserName" allowAnonymous="true" type="String" serializeAs="Binary"/>
                    name="PassWord" allowAnonymous="true" type="String" serializeAs="Binary"/>
                    name="Email" allowAnonymous="true" type="String" serializeAs="Binary"/>
                
                name="grpShoppingCart">
                    name="MyCart" allowAnonymous="true" type="ShoppingCart" serializeAs="Binary"/>
                
            

        
        
    

4.转移购物车的方法,在Global.asax里(右键WebUI,新建全局应用程序)写Profile_OnMigrateAnonymous
        需要在最上面导入命名空间<%@ Import Namespace="System.Web.Profile" %>Global.asax代码


      5.最后实现Default页面,页面的界面和后台
        1.界面中的用户名和登陆(是工具箱-->登陆(拖LoginName和LoginStatus))
        2.选购下面的GridView1是直接拖一张Product表进来的
        3.购物车下面的GridView2的数据是在后台绑定的,然后在点右边小三角(点 添加新列)
          -->选ButtonField,把文本改为删除
        4.下面的登陆控件(是工具箱-->登陆(拖Login))

页面后台代码