首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

高手一看就能解决的购物车有关问题,小弟我不知哪儿出错了

2012-02-03 
高手一看就能解决的购物车问题,我不知哪儿出错了.这是实现商品数量修改的代码,不知哪儿有问题,总取不出Tex

高手一看就能解决的购物车问题,我不知哪儿出错了.
这是实现商品数量修改的代码,不知哪儿有问题,总取不出   TextBox   中输入的值:  

protected   void   btnUpdateCart_Click(object   sender,   EventArgs   e)
        {
                DataTable   dtb   =   (DataTable)Session[ "myCar "];

                foreach   (GridViewRow   grw   in   this.GridView2.Rows)
                {

                        int   i   =   grw.RowIndex;

                        int   theCount   =   Convert.ToInt32(((TextBox)this.GridView2.Rows[i].Cells[4].FindControl( "txtCount ")).Text.ToString());

                        DataRow   UpdateDR;
                        UpdateDR   =   dtb.Rows[i];
                        Decimal   thePrice   =   Convert.ToDecimal(dtb.Rows[i][ "thePrice "]);
                        UpdateDR[ "TheCount "]   =   theCount;
                        //oldDR[ "thePrice "]   =   thePrice;
                        UpdateDR[ "TotalPrice "]   =   thePrice   *   theCount;
                        Session[ "myCar "]   =   dtb;
                        Context.Server.Transfer(Request.CurrentExecutionFilePath);

}
}

以下是:   aspx   页面代码:

<asp:GridView   ID= "GridView2 "   runat= "server "   AutoGenerateColumns= "False "   Height= "205px "
                        Width= "540px ">
                        <Columns>
                                <asp:BoundField   DataField= "Id "   HeaderText= "序号 "   />
                                <asp:BoundField   DataField= "goodsId "   HeaderText= "商品ID "   />
                                <asp:BoundField   DataField= "thtGoodsName "   HeaderText= "商品名称 "   />
                                <asp:BoundField   DataField= "thePrice "   HeaderText= "单价 "   />
                                <asp:TemplateField   HeaderText= "数量 ">
                                        <ItemTemplate>


                                                <asp:TextBox   ID= "txtCount "   runat= "server "   Text= ' <%#   Eval( "TheCount ")   %> '   Width= "91px "   EnableViewState= "False "> </asp:TextBox>
                                        </ItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField   DataField= "TotalPrice "   HeaderText= "单项总价 "   />
                                <asp:TemplateField   HeaderText= "删除 ">
                                        <ItemTemplate>
                                                <asp:Button   ID= "btnDelTheGoods "   runat= "server "   CommandArgument= ' <%#   Eval( "goodsId ")   %> '
                                                        Text= "删除 "   Width= "59px "   />
                                        </ItemTemplate>
                                </asp:TemplateField>
                        </Columns>
                </asp:GridView>
                <asp:Button   ID= "btnUpdateCart "   runat= "server "   OnClick= "btnUpdateCart_Click "   Text= "更新购物车 "   />


购物车的结构如下:

  dtb.Columns.Add( "Id ",   typeof(Int32));
                        dtb.Columns[0].AutoIncrement   =   true;
                        dtb.Columns[0].AutoIncrementSeed   =   1;
                        dtb.Columns.Add( "goodsId ",   typeof(Int32));
                        dtb.Columns.Add( "thtGoodsName ");
                        dtb.Columns.Add( "thePrice ");
                        dtb.Columns.Add( "TheCount ");
                        dtb.Columns.Add( "TotalPrice ");



[解决办法]
你的数据是从DataTable来的,不是数据库?
[解决办法]
1
if(!IsPostBack)
{
.DataView绑定要放在
}

2.
DataTable dtb = (DataTable)Session[ "myCar "];

foreach (GridViewRow grw in this.GridView2.Rows)
{

int i = grw.RowIndex;

int theCount = Convert.ToInt32(((TextBox)this.GridView2.Rows[i].Cells[4].FindControl( "txtCount ")).Text.ToString());

DataRow UpdateDR;
UpdateDR = dtb.NewRow();
Decimal thePrice = Convert.ToDecimal(dtb.Rows[i][ "thePrice "]);
UpdateDR[ "TheCount "] = theCount;
//oldDR[ "thePrice "] = thePrice;
UpdateDR[ "TotalPrice "] = thePrice * theCount;
dtb.Rows.Add(UpdateDR);
}
Session[ "myCar "] = dtb;
Context.Server.Transfer(Request.CurrentExecutionFilePath);
[解决办法]
GridView 的绑定代码放在

if(!IsPostBack) {
// 这里...
}

热点排行