无法将类型为“ System.Web.UI.WebControls.ContentPlaceHolder”的对象转换为类型为“ System.Web.UI.WebControls.GridViewRow”。在buttonclick中

时间:2019-07-30 11:52:08

标签: c# asp.net

我正在获取InvalidCastException。从此代码

protected void btnSaveOpeningBalance_Click(object sender, EventArgs e)
{
    try
    {
        AddItemBLL objAddItemsBll = new AddItemBLL();           
        List<SetItemDAO> objItmDAO = new List<SetItemDAO>();
        SetItemDAO objItmDAOMaster = new SetItemDAO();
        if (gvItem.Rows.Count > 0)
        {
            for(int i = 0;i<gvItem.Rows.Count;i++)
            {
                GridViewRow gvr = (GridViewRow)(((Control)sender).NamingContainer);

                TextBox txtQuantity = (TextBox)gvItem.Rows[gvr.RowIndex].FindControl("txtQuantity");
                double qty = (txtQuantity.Text.Trim().Length > 0) ? Convert.ToDouble(txtQuantity.Text.Trim()) : 0;
                TextBox txtVal = (TextBox)gvItem.Rows[gvr.RowIndex].FindControl("txtValue");
                double val = (txtVal.Text.Trim().Length > 0) ? Convert.ToDouble(txtVal.Text.Trim()) : 0;

                objItmDAOMaster.ItemID = Convert.ToInt16(gvItem.DataKeys[gvr.RowIndex].Values["ItemID"]);
                objItmDAOMaster.ItmQty = qty;
                objItmDAOMaster.ItmVl = val;

                //objItmDAO.Add(objItmDAOMaster);
                bool result = objAddItemsBll.InsertItemBalance(objItmDAOMaster);
            }
        }
    }
    catch(Exception ex)
    {
        throw ex;
    }
}

并给出此错误信息 “无法将类型为'System.Web.UI.WebControls.ContentPlaceHolder'的对象转换为类型为'System.Web.UI.WebControls.GridViewRow'。” 我也尝试这个

GridViewRow gvr = gvItem.Rows[gvItem.SelectedDataKey.Value]; 

但仍然出现相同的错误。

0 个答案:

没有答案