2

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

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

我收到一条错误消息

Specified cast is not valid.

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

4

2 回答 2

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"/>
于 2012-06-19T11:52:55.090 回答
2

像这样在 aspx 文件中重写:

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

代码隐藏:

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

   }

  return i;

}

有点粗糙,但我希望你能轻松完成剩下的处理。

于 2012-06-19T11:59:32.620 回答