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