向codebehind添加<asp:image>

3
我想在后端代码中添加<asp:image>到页面上。我的网站用户会上传X张图片,我不想在图片上传之前就添加<asp:images>
我想添加<asp:image>是为了向用户展示已上传的图片。
如何实现呢?
我看到过占位符控制器被使用,但是当变量每次都不同时该怎么用呢?对于每个上传,图片应该被添加到网站上。
1个回答

3

您可以通过创建一个新的Image对象变量,然后正确地分配其属性,然后将图像附加到页面上现有的对象来实现此目的。

Image myImg = new Image();
myImg.ImageUrl = "path_of_the_image.jpg";
myImg.Visible = true;
Panel1.Controls.Add(myImg);   //You can attach the image to any control on your page

同样地,或者类似的情况下:
this.Controls.Add(myImg);     //Incase you wanted the image on your page controls
Label1.Controls.Add(myImg);   //Incase you wanted the image to appear in a certain label

然而,这个对象的生命周期不会超过您执行的代码的生命周期。这意味着,您将无法在以后与此对象进行交互,因为它是在 Page_Init 的范围之后定义的。如果您希望动态添加此图像并能够与其交互,则应在 Page_Init 事件期间添加它。

我应该提醒一下,这是针对C# Web Forms的。 - sindrem
我能添加多张图片吗?当我添加第二张图片时,控制器好像被覆盖了。 - sindrem
您可以添加任意数量的控件,不会覆盖任何内容。您只是在现有控件列表中添加新的控件。 - Ahmad
您也可以向占位符添加控件。面板与占位符不同,但所有控件都有一个内置的控件数组,您可以向其中添加更多控件。 - Ahmad
你的语法不正确;我已经为你修正了,因为这并不是问题所在。 - Shadow The Spring Wizard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接