我在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给了你一个例子。如果不想使用完整类型名称,也可以尝试使用不同的命名空间。