为什么我不能在asp.net webforms中这样做?

时间:2011-12-31 02:40:34

标签: c# asp.net

我的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>

2 个答案:

答案 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中的

一切都会好起来。