购物车ShoppingCart.aspx.cs中:
Cart shoppingCart = ShoppingCart(false);
if (!shoppingCart.IsEmpty)
{
CartItemsDataGrid.DataSource = (ICollection)shoppingCart.OrderItems.DefaultView;
CartItemsDataGrid.DataBind();
cartHasItems = true;
}
数据源是Cart类中的OrderItems表:
public DataTable OrderItems
{
get
{
ApplicationAssert.Check(cartOrderData != null, "Don't call if IsEmpty is True", ApplicationAssert.LineNumber);
return cartOrderData.Tables[OrderData.ORDER_ITEMS_TABLE];
}
}
但这里表内是空的,填加记录是Cart类中的AddItem方法,如下:
public void AddItem(int itemId, String itemDescription, Decimal itemPrice)
{
DataTable itemTable = OrderItems;
DataView itemSource = new DataView(itemTable);
//search for item, check to see if the item has already been ordered
itemSource.RowFilter = "ItemNumber = " + itemId.ToString();
if (itemSource.Count > 0)
{
DataRowView sourceRow = itemSource[0];
short count = (short)(sourceRow[OrderData.QUANTITY_FIELD]);
//maximum allowed for any specific item is 50
if (count < 50)
{
//bump the quantity by one
count += 1;
sourceRow[OrderData.QUANTITY_FIELD] = count;
sourceRow[OrderData.EXTENDED_FIELD] = (Decimal)sourceRow[OrderData.PRICE_FIELD] * count;
}
}
else
{
//It's a new item
DataRow itemRow = itemTable.NewRow();
itemRow[OrderData.ITEM_NUMBER_FIELD] = itemId;
itemRow[OrderData.QUANTITY_FIELD] = 1;
itemRow[OrderData.DESCRIPTION_FIELD] = itemDescription;
itemRow[OrderData.PRICE_FIELD] = itemPrice;
itemRow[OrderData.EXTENDED_FIELD] = itemPrice;
//Add it to the table
itemTable.Rows.Add(itemRow);
}
}
我的问题是这里的AddItem方法是加记录到自定义的一个itemTable表中, 没有关联到OrderItems表中啊,请教他是在什么地方关联的啊,看了一天了没看出来.
(因表达能力欠佳, 而牵涉的代码较多,所以希望研究过的,或是能看明白我描述的指导我一下,谢谢,高分送上)
Cart shoppingCart = ShoppingCart(false);
if (!shoppingCart.IsEmpty)
{
CartItemsDataGrid.DataSource = (ICollection)shoppingCart.OrderItems.DefaultView;
CartItemsDataGrid.DataBind();
cartHasItems = true;
}
数据源是Cart类中的OrderItems表:
public DataTable OrderItems
{
get
{
ApplicationAssert.Check(cartOrderData != null, "Don't call if IsEmpty is True", ApplicationAssert.LineNumber);
return cartOrderData.Tables[OrderData.ORDER_ITEMS_TABLE];
}
}
但这里表内是空的,填加记录是Cart类中的AddItem方法,如下:
public void AddItem(int itemId, String itemDescription, Decimal itemPrice)
{
DataTable itemTable = OrderItems;
DataView itemSource = new DataView(itemTable);
//search for item, check to see if the item has already been ordered
itemSource.RowFilter = "ItemNumber = " + itemId.ToString();
if (itemSource.Count > 0)
{
DataRowView sourceRow = itemSource[0];
short count = (short)(sourceRow[OrderData.QUANTITY_FIELD]);
//maximum allowed for any specific item is 50
if (count < 50)
{
//bump the quantity by one
count += 1;
sourceRow[OrderData.QUANTITY_FIELD] = count;
sourceRow[OrderData.EXTENDED_FIELD] = (Decimal)sourceRow[OrderData.PRICE_FIELD] * count;
}
}
else
{
//It's a new item
DataRow itemRow = itemTable.NewRow();
itemRow[OrderData.ITEM_NUMBER_FIELD] = itemId;
itemRow[OrderData.QUANTITY_FIELD] = 1;
itemRow[OrderData.DESCRIPTION_FIELD] = itemDescription;
itemRow[OrderData.PRICE_FIELD] = itemPrice;
itemRow[OrderData.EXTENDED_FIELD] = itemPrice;
//Add it to the table
itemTable.Rows.Add(itemRow);
}
}
我的问题是这里的AddItem方法是加记录到自定义的一个itemTable表中, 没有关联到OrderItems表中啊,请教他是在什么地方关联的啊,看了一天了没看出来.
(因表达能力欠佳, 而牵涉的代码较多,所以希望研究过的,或是能看明白我描述的指导我一下,谢谢,高分送上)
解决方案 »
- 如何实现淘宝的 “你可能还喜欢” 功能?
- 获取GridView中隐藏列的值
- 关于ASP.NET MVC
- 有没有性价比高的上海空间??请给网址
- 当鼠标放到图片上,就显示图片的信息
- OdbcConnection 在连sysbase时报错;ERROR - 没有可用的错误信息,
- 怎么让本页中的web User Control拿到这个页面中Label的值呢?
- 大家看到有这样的应用模式吗?大家一起来谈谈一下这种应用程序的程序方法吧
- 我的几个问题,希望江雨大侠等解答,谢谢!
- 服务器应用程序池停止后无法马上启动
- 在 web.config 文件内部如何读取变量 ?
- 求教: 怎样在XML文本中加入asp.NET 代码???????????
OrderItems.DataRow[OrderItems.DataRow.count]==itemRow成立了.这就是关联的说!
C#:
DataTable itemTable=new DataTable();
DataRow itemRow = itemTable.NewRow();VB:
Dim itemTableAs DataTable = New DataTable
Dim itemRow As DataRow = itemTable.NewRow