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



我在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();
        }
    }

铸造时使用

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

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

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

相关内容

最新更新