Northwind数据库上的ASP.NET购物车

Northwind数据库上的ASP.NET购物车,asp.net,Asp.net,谢谢你的投入。我以会话变量的形式从商店页面捕获了产品选择,并将它们显示在结帐页面上。我的最后一步是能够在签出页面上删除一些产品(以防客户选择了他不需要的产品)。这是我的尝试 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlCli

谢谢你的投入。我以会话变量的形式从商店页面捕获了产品选择,并将它们显示在结帐页面上。我的最后一步是能够在签出页面上删除一些产品(以防客户选择了他不需要的产品)。这是我的尝试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

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

            if (!IsPostBack)
            {
                CheckBoxList1.DataSource = Session["MySelectedItems"];

                CheckBoxList1.DataBind();
            }

        }

        protected void ReturnBacktoShopping_Click(object sender, EventArgs e)
        {
            Response.Redirect("Shopping.aspx");
        }

        public void KillOrders()
        {
            for (int i = 0; i < CheckBoxList1.Items.Count; i++)
            {

                if (CheckBoxList1.Items[i].Selected)
                {
                    CheckBoxList1.Items.Remove(i);
                }
            }
        }

        protected void RemoveItems_Click(object sender, EventArgs e)
        {
            KillOrders();
            List<ListItem> selectItems = new List<ListItem>();

            foreach (ListItem item in CheckBoxList1.Items)
            {
                if (item.Equals(null))
                    selectItems.Add(item);
            }

            Session.Add("MySelectedItems", selectItems);
            CheckBoxList1.DataSource = Session["MySelectedItems"];

            CheckBoxList1.DataBind();


        }




    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.Data.SqlClient;
命名空间购物车
{
公共部分类签出:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
CheckBoxList1.DataSource=会话[“MySelectedItems”];
CheckBoxList1.DataBind();
}
}
受保护的void returnback单击(对象发送方,事件参数e)
{
重定向(“Shopping.aspx”);
}
公共秩序
{
对于(int i=0;i
您可以使用
会话
查询字符串

按会话划分

在您的第一页:

Session["scart"] = items;
private void button1_Click(object sender, EventArgs e)
{
    String cart = "items";
    Response.Redirect("Checkout.aspx?editor" + cart)
}
然后在下一页中,使用以下方法访问会话:

protected void Page_Load(object sender, EventArgs e)
{
    String cart= String.Empty;
    if(!String.IsNullOrEmpty(Session["scart"].ToString()))
    {
        cart = Session["scart"].ToString();
        // do Something();
    }
    else
    {
        // do Something();
    }
}
-

通过查询字符串

在您的第一页:

Session["scart"] = items;
private void button1_Click(object sender, EventArgs e)
{
    String cart = "items";
    Response.Redirect("Checkout.aspx?editor" + cart)
}
在第二页:

protected void Page_Load(object sender, EventArgs e)
{
    string cart= Request.QueryString["cart"].ToString();
    // do Something();
}

已编辑*好的,这是应用程序工作流程

Shopping.aspx页面 1.将CheckBoxList1.DataValueField设置为Northwind产品的密钥

CheckBoxList1.DataValueField = "ProductID"; //on pageload setup Northwind product's key
2.将选中的值(产品的键)解析到ArrayList中

3.将ArrayList存储在会话中。(2-3已经完成。)

Checkout.aspx页面
谢谢你,伊珊。以便在签出页(或第二页)上显示选中的项目。如何连接SQLDataSource控件和Checkbox控件。我主要关注的是如何在第二页的第一页上显示选中的项目。在我的另一页的另一页上使用PreviousPage.FindControl(“yourcontrolid”)。。我在页面加载中插入了上面提到的代码。在SQLDataSource_选择事件处理程序中,我插入了PreviousPage.FindControl(“SqlDataSource1”);。。。它给了我一个空对象引用错误,如果在页面加载事件中一切正常,请尝试。我的意思是只需将代码从SQLDataSource中移出,然后在页面加载时执行,如果这样做比放置事件处理程序更有效。现在我对您尝试执行的操作感到困惑,您说您只想显示您在页面上选择的内容“Previous”那么现在为什么要在“Next”页面上显示事件处理程序呢?嗨,ai.farfa。我认为我的代码是正确的。只是在Checkoutpage上,我发现很难在第一页上显示用户选择的产品。我认为这与SQLData控件和Checkboxlist控件的连接有关