投射图像并动态更改其来源

时间:2011-08-09 14:49:49

标签: asp.net image user-controls casting dynamic

我想根据数据库中的链接更改图像源。我得到一个obect未设置为某些页面上的引用null消息。这是我试图用来投射图像的代码。它确实适用于所有页面的注释掉的代码,但大约有三个...我认为它中断的唯一原因是因为这些页面使用徽标所在的继承母版页。 image.Src在if语句的最后部分,它没有.Src可用。有没有办法动态更改图像源?谢谢!

                if (row.ImageString != "")
                {
                    //imgLogo.Src = "~" + row.ImageString;
                    Image image = new Image();
                    image.FindControl("imgLogo");
                    image.Src = "~" + row.ImageString; 
                }

2 个答案:

答案 0 :(得分:0)

我认为你需要更像这样的东西:

Image image = row.FindControl("imgLogo");
image.ImageUrl = "~" + row.ImageString;

您的代码正在尝试在刚刚初始化的图像中查找图像。您需要在行/项/父容器中找到该图像。

答案 1 :(得分:-1)

由于母版页,您获得了空引用。 如果您使用的是.Net 4.0,则需要在图像控件上将ClientID设置为静态 如果您在4.0之前使用.Net,则需要查看在构建/运行页面时呈现的源代码,并查找图像控件并查看控件的ID。有时它会呈现为Content.ImageName或Content_ImageName .... 将其复制到您的image.Findcontrol方法。
那会解决你的问题。