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

本文关键字:webforms 这样做 net asp 不能 为什么 | 更新日期: 2023-09-27 18:19:11

我有一个<asp:Image ID="imgBanner1" runat="server"/>控件在我的aspx页面,然后在代码后面我有这个测试代码:

Image img = new Image();
img.ImageUrl = "~/img/home/home1.jpg";
//...
imgBanner1 = img;  //<--

那么当我刷新页面时,<img>src值是空白的,图片不出现。我试图把片段在Page_Load, Page_Init, Page_PreInit事件,但仍然不工作。我怎么解决这个问题?我需要在我的页面中分配一些其他类的自定义控件…谢谢你的回答!

编辑:它工作,如果我这样做:

imgBanner1.ImageUrl = img.ImageUrl;
//...

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

如果你想动态添加一个控件到页面中,然后添加占位符(或容器-面板等)控件,并在page_init/page_load中编写以下代码。有关更多信息,请参阅MSDN文章-如何:向ASP添加控件。. NET网页编程?

Image img = new Image();
img.ImageUrl = "~/img/home/home1.jpg";
PlaceHolder1.Controls.Add(img);

ImageUrl是一个字符串属性,您必须设置字符串图像url。

您不需要自己实例化一个新的Image。这些代码在page.designer.cs code-behind/beside文件中作为一个受保护的字段自动生成。你所需要做的就是:

imgBanner1.ImageUrl = "~/img/home/home1.jpg"; 

Page_Load中,一切都会好起来的。

相关文章: