指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
<asp:Image ID="FlagImage" runat="server" ImageUrl='<%#FormatImageUrl((bool)DataBinder.Eval(Container.DataItem,"Flag"),DataBinder.Eval(Container.DataItem,"Type").ToString()) %>' /> 我是在实现一个网络硬盘的例子,说明一下,第一次加载的时候不会报错,因为第一次显示的都是里面的文件夹,而当我点其中的一个文件夹,想要显示里面的文件的时候。
当调试到
private void BindDirectoryData(int nParentID)
{
///显示目录列表信息
IDisk disk = new Disk();
SqlDataReader dr = disk.GetDirectoryFile(nParentID);
///绑定控件的数据
DiskView.DataSource = dr;
DiskView.DataBind();
dr.Close(); ReturnBtn.Visible = nParentID > 0 ? true : false;
}这里面的DiskView.DataBind();它就报上面的错误,其中FormatImageUrl函数实现如下
protected string FormatImageUrl(bool bFlag, string sType)
{
if (bFlag == true) //bFlag是判断是否为文件夹类型:1为是,0为否
{ ///文件类型
return ("~/Images/folder.gif");
}
else
{
switch (sType) //sType是判断文件的类型
{ ///bmp文件
case "image/bmp": return ("~/Images/bmp.bmp");
///exe文件
case "application/octet-stream": return ("~/Images/exe.bmp");
default: return ("~/Images/other.gif");
}
}
return ("");
}
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
<asp:Image ID="FlagImage" runat="server" ImageUrl='<%#FormatImageUrl((bool)DataBinder.Eval(Container.DataItem,"Flag"),DataBinder.Eval(Container.DataItem,"Type").ToString()) %>' /> 我是在实现一个网络硬盘的例子,说明一下,第一次加载的时候不会报错,因为第一次显示的都是里面的文件夹,而当我点其中的一个文件夹,想要显示里面的文件的时候。
当调试到
private void BindDirectoryData(int nParentID)
{
///显示目录列表信息
IDisk disk = new Disk();
SqlDataReader dr = disk.GetDirectoryFile(nParentID);
///绑定控件的数据
DiskView.DataSource = dr;
DiskView.DataBind();
dr.Close(); ReturnBtn.Visible = nParentID > 0 ? true : false;
}这里面的DiskView.DataBind();它就报上面的错误,其中FormatImageUrl函数实现如下
protected string FormatImageUrl(bool bFlag, string sType)
{
if (bFlag == true) //bFlag是判断是否为文件夹类型:1为是,0为否
{ ///文件类型
return ("~/Images/folder.gif");
}
else
{
switch (sType) //sType是判断文件的类型
{ ///bmp文件
case "image/bmp": return ("~/Images/bmp.bmp");
///exe文件
case "application/octet-stream": return ("~/Images/exe.bmp");
default: return ("~/Images/other.gif");
}
}
return ("");
}
SqlDataReader dr = disk.GetDirectoryFile(nParentID);
///绑定控件的数据
DiskView.DataSource = dr;
DiskView.DataBind(); 你换别的容器绑定一下试试吧(DataTable ,DataSet)