2012-06-19 38 views
2

我在ASP.NET中的重复器中有一个图像。我需要将此图像的宽度动态设置为从数据库返回的值。我从SQL数据库的信息,然后我绑定转发到结果集或数据源,我尝试在转发指定图像的宽度,如下所示:使用Eval在ASP.NET中动态设置图像宽度

<asp:Image ID="Image1" runat="server" Width='<%# Eval("ImageSize") %>' ImageUrl="~/Images/ProgressBar.jpg"/> 

我得到一个错误,说明

Specified cast is not valid. 

这可能是由于从数据库返回的数据类型引起的?

任何帮助表示赞赏。

感谢 Ĵ

+0

什么是字段数据类型,它可以为空? –

+0

大小不能为空,从DB返回的字段类型为Int。谢谢J –

回答

1

使用System.Web.UI.WebControls.Unit.Parse方法:

<asp:Image 
     ID="Image1" 
     runat="server" 
     Width='<%# System.Web.UI.WebControls.Unit.Parse(Eval("ImageSize").ToString()) %>' 
     ImageUrl="~/Images/ProgressBar.jpg"/> 
2

重新写在aspx文件是这样的:

Width='<%# ConvertToImageSize(Eval("ImageSize")) %>' 

代码隐藏:

protected int ConvertToImageSize(object imageSize) 
{ 
    int i = 0; 
    if (imageSize != null) 
    { 
    i = Convert.ToInt32(imageSize); 

    } 

    return i; 

} 

有点粗糙,但我希望你可以轻松地完成其余的处理。

+0

谢谢你。与@AVD的解决方案相比似乎有点乏味,但仍然是一个很好的答案。谢谢J –

+0

我需要设置为百分比而不是px。我该怎么做? –

相关问题