我的aspx页面中有一个<asp:Image ID="imgBanner1" runat="server"/>
控件,然后在代码后面我有这个测试代码:
Image img = new Image();
img.ImageUrl = "~/img/home/home1.jpg";
//...
imgBanner1 = img; //<--
然后当我刷新页面时,src
的{{1}}值为空,图片不会显示。我试图将片段放在Page_Load,Page_Init,Page_PreInit事件中,但仍然无法正常工作。我怎么解决这个问题?我需要在我的页面中设置一些其他clases的自定义控件...感谢您的回答!
修改:如果我执行此操作,则无效:
<img>
答案 0 :(得分:4)
如果要将控件动态添加到页面中,请在其上添加占位符(或容器 - 面板等)控件,并在page_init / page_load中编写以下代码。有关详细信息,请阅读MSDN文章 - How to: Add Controls to an ASP.NET Web Page Programmatically?
Image img = new Image();
img.ImageUrl = "~/img/home/home1.jpg";
PlaceHolder1.Controls.Add(img);
ImageUrl
是一个字符串属性,您必须设置字符串图像网址。
答案 1 :(得分:3)
您无需自己实例化新图像。此代码自动生成为page.hindigner.cs代码隐藏/旁边文件中的受保护字段。您需要做的就是:
imgBanner1.ImageUrl = "~/img/home/home1.jpg";
Page_Load
中的一切都会好起来。