在ASP.NET中使用Eval动态设置图像宽度

时间:2012-06-19 11:37:26

标签: c# asp.net sql-server-2008

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

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

我收到错误说明

Specified cast is not valid.

这可能是由于从db?

返回的数据类型引起的

感谢任何帮助。

由于 Ĵ

2 个答案:

答案 0 :(得分:2)

使用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"/>

答案 1 :(得分:2)

在aspx文件中重写,如下所示:

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

<强>代码隐藏:

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

   }

  return i;

}

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