 图3.实际使用中的购物篮。 | 该购物篮,就象产品GridView一样,也使用TemplateColumns;因此,我们可以在每一行上建立一个数量文本框。这为顾客提供一种容易的方式来更新他们要求的每一种商品的数目。一旦他们改变了这些值,他们点击在购物篮下面的"Update Quantities"按钮。这将激活一个为shopUpdateBasketQuantities_OnServerClick()所捕获的 OnServerClick事件。这类似于addToBasket()函数:我们必须定位购物篮中的产品,然后更新它的数量。区别在于:当检查从文本框中检索的数据时,我们必须小心,因为你根本不会知道什么人能够进入到其中致使弄乱你的系统。下面是处理这一检查的函数的部分代码片断:
//从Quantity文本框中读取数据 HtmlInputText itQuant = (HtmlInputText)row.FindControl("itProductQuantity"); //把该值转换成一个整数 try { int quant = Convert.ToInt32(itQuant.Value);
/*如果该值成功转换成一个整数,那么我们还 需要检查它不是一个负数;否则的话,我们可能欠 顾客钱!*/ if(quant > 0) { drProduct["quantity"] = quant; } else { drProduct.Delete(); } } catch { //如果我们不能把它转换成整数,那么我们不作什么改变。 } | 例如,如果有人在quantity域中输入-100,你可能还会欠他们的钱!不过,一般地,你可能不会把钱支付给他们,但是这要依赖于你的支付系统是如何建立的。由于这个原因,我们把这个整数分析包装到一个try/catch语句块内,以便在不能分析的情况下,我们保留原来的值不变。此后,我们检查这个 quantity以确保它大于零。如果它小于或等于零,那么我们删除这一行。最后,在检查完购物篮中所有的产品并且修改它们各自相应的数量后,我们即保存购物篮并更新显示。上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 |