扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:朱先忠编译 来源:天极开发 2007年11月6日
关键字: Windows
图2.示例程序中实现的购物篮。 |
protected void shopBuy_OnServerClick(object source, EventArgs e) { int index = ((GridViewRow)((HtmlInputButton)source).Parent.NamingContainer).RowIndex; addToBasket(Convert.ToInt32(gvProducts.DataKeys[index].Value)); } protected void addToBasket(int productID) { DataTable dtBasket = getBasketDt(); //循环遍历购物篮并检查是否该项已经存在 bool found = false; for(int i = 0; i < dtBasket.Rows.Count; i++) { if(Convert.ToInt32(dtBasket.Rows[i]["id"]) == productID) { //增加数量并且标记为已发现 dtBasket.Rows[i]["quantity"] = Convert.ToInt32(dtBasket.Rows[i]["quantity"]) + 1; found = true; //当我们已经找到一项时跳出循环 break; } } //如果该项没有找到,则把它添加为一个新行 if(!found) { DataTable dtProducts = getProductsDt(); DataRow drProduct = dtProducts.Rows.Find (productID); //现在,我们已经从数据源中得到了需要的数据,那么我们将把一个新行添加到购物篮中 DataRow newRow = dtBasket.NewRow(); newRow["id"] = drProduct["id"]; newRow["name"] = drProduct["name"]; newRow["price"] = drProduct["price"]; newRow["quantity"] = 1; dtBasket.Rows.Add(newRow); } //把新更新的购物篮存储回会话中 Session["dtBasket"] = dtBasket; //更新购物篮,也即是"重新绑定它" updateShopBasket(); } |
图3.实际使用中的购物篮。 |
//从Quantity文本框中读取数据 HtmlInputText itQuant = (HtmlInputText)row.FindControl("itProductQuantity"); //把该值转换成一个整数 try { int quant = Convert.ToInt32(itQuant.Value); /*如果该值成功转换成一个整数,那么我们还 需要检查它不是一个负数;否则的话,我们可能欠 顾客钱!*/ if(quant > 0) { drProduct["quantity"] = quant; } else { drProduct.Delete(); } } catch { //如果我们不能把它转换成整数,那么我们不作什么改变。 } |
private void updateShopBasket() { gvBasket.DataSource = getBasketDt(); gvBasket.DataBind(); ibEmptyBasket.Visible = ibUpdateBasketQuantities.Visible = ibBasketCheckout.Visible = gvBasket.Rows.Count > 0; } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者