2011-08-09 47 views
0

我想更改基于数据库中链接的图像源。我在某些页面上没有将参数设置为引用null消息。这里是我试图用来投射图像的代码。它可以处理所有页面的注释代码,但大约有三个......我认为它破坏的唯一原因是因为这些页面使用了徽标所在的继承主页面。 image.rc在if语句的最后部分,它没有.Src可用。有什么方法可以动态更改图像源?谢谢!投射一个图像,并动态更改它的源代码

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

回答

0

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

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

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

-1

由于母版页,您正在获取空引用。 如果您使用.Net 4.0,则需要将图像控件上的ClientID设置为静态。
如果您使用4.0以前的.Net,您需要查看构建/运行页面时显示的源代码,并查找图像控件并查看控件的ID。有时它会呈现为Content.ImageName或Content_ImageName .... 将其复制到image.Findcontrol方法中。
这将修复亚。

+0

你的建议无助于解决他的问题。将ClientID设置为静态只适用于客户端,他所做的一切都是服务器端。 –

+0

这与它无关。他的空引用错误是因为它找不到图像控件(他在描述中告诉你他的问题)。如果他设置clientID名称,它将允许服务器在尝试插入URL时找到控件,否则他必须提供完全限定的控件名称。 – cgcarter1

+0

是的,他无法找到图像,因为他试图找到他在之前在线上初始化的图像中的控件。在发布答案之前,请仔细阅读代码。 –