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控件的连接有关