具体来说,我在页面上加了一个datagrid控件,用于显示购物车中的项目,控件中的itemtemplate我放入textbox(用于输入订货数量),另外一列我放入一个checkbox(用于删除表中的项目) 问题是: 如果要更新订购数量,我得不到textbox中输入的值,不知道为什么。 我得代码是: 
for(int i =0; i <MyList.Items.Count;i++) 
        { 
            TextBox qtytxt = (TextBox)MyList.Items[i].Cells[3].FindControl("Quantity"); 
            CheckBox remove = (CheckBox)MyList.Items[i].Cells[6].FindControl("Remove"); 
            //string  a= qtytxt.Text; 
            int quantity; 
            try 
            { 
                quantity = Int32.Parse(qtytxt.Text); 
                
                if(quantity!=(int)MyList.DataKeys[i] || remove.Checked ==true) 
                { 
                    Label lblProductID = (Label)MyList.Items[i].Cells[0].FindControl("ProductID"); 
                    if(quantity == 0 || remove.Checked == true) 
                    { 
                        cart.RemoveItem(cartId, Int32.Parse(lblProductID.Text)); 
                    } 
                    else 
                    { 
                        cart.UpdateItem(cartId, Int32.Parse(lblProductID.Text), quantity); 
                    } 
                } 
            } 
            catch (System.Exception ex) 
            { 
                Response.Write(" <Script Language=JavaScript>alert(\"您输入的数据有错误!\") </Script>"); 
            } 
        } 这段代码没有语法错误,请大虾给予指点!!谢谢!!急

解决方案 »

  1.   

    你在PageLoad上加上这个看看先
    if(this.IsPostBack)
        return;
      

  2.   


    TextBox qtytxt = (TextBox)MyList.Items[i].FindControl("Quantity"); 
    CheckBox remove = (CheckBox)MyList.Items[i].FindControl("Remove"); 你直接找试试..不用Cell[n]这种形式
      

  3.   


    for(int i =0; i <MyList.Items.Count;i++) 
            { 
                TextBox qtytxt = (TextBox)MyList.Items[i].FindControl("Quantity"); 
    CheckBox remove = (CheckBox)MyList.Items[i].FindControl("Remove"); 
                //string  a= qtytxt.Text; 
                int quantity; 
                try 
                { 
                    quantity = Int32.Parse(qtytxt.Text); 
                    
                    if(quantity!=(int)MyList.DataKeys[i] || remove.Checked ==true) 
                    { 
                        Label lblProductID = (Label)MyList.Items[i].FindControl("ProductID"); 
                        if(quantity == 0 || remove.Checked == true) 
                        { 
                            cart.RemoveItem(cartId, Int32.Parse(lblProductID.Text)); 
                        } 
                        else 
                        { 
                            cart.UpdateItem(cartId, Int32.Parse(lblProductID.Text), quantity); 
                        } 
                    } 
                } 
                catch (System.Exception ex) 
                { 
                    Response.Write(" <Script Language=JavaScript>alert(\"您输入的数据有错误!\") </Script>"); 
                } 
            }
      

  4.   

    更新的话 应该是edititemtemplate中的textbox的ID吧!