在网格视图中添加新行时控制Type FileUpload时出错

时间:2016-05-01 13:40:33

标签: c# asp.net file-upload

我在gridview中使用fileUpload控件。我使用了以下代码,但它在执行时给出了异常。

我得到例外的代码部分:

FileUpload file = (FileUpload)gridFile.Rows[i].Cells[0].FindControl("fileUpload1");

例外:  无法将类型为“System.Web.UI.WebControls.FileUpload”的对象强制转换为“FileUpload.FileUpload”。

代码:

    protected void AddNewRow()
      {
        if (ViewState["CurrentTable"] != null)
        {
            DataTable dt = (DataTable)ViewState["CurrentTable"];
            DataRow dr = null;
            if(dt.Rows.Count >0)
            {
                dr = dt.NewRow();
                dt.Rows.Add(dr);
                ViewState["CurrentTable"] = dt;
                for(int i = 0; i<dt.Rows.Count-1;i++)
                {
                    FileUpload file = (FileUpload)gridFile.Rows[i].Cells[0].FindControl("fileUpload1");

   dt.Rows[i]["Browse"] = file.ToString();

}
            }
                gridFile.DataSource = dt;
                gridFile.DataBind();
        }
    }

2 个答案:

答案 0 :(得分:2)

在施法时使用

 System.Web.UI.WebControls.FileUpload file=(System.Web.UI.WebControls.FileUpload)gridFile.Rows[i].Cells[0].FindControl‌​("fileUpload1"); 

答案 1 :(得分:0)

该消息告诉您对象的运行时类型与您尝试转换的运行时类型不同。您需要确保您的变量文件是System.Web.UI.WebControls.FileUpload而不是FileUpload.FileUpload。您可能在框架中定义了与该名称相同的类。使用完全限定名称类型来解决此问题。

编辑: Mysterio11给了你一个例子。如果您不想使用完整类型名称,也可以尝试使用不同的命名空间。

相关问题