Asp.net 在不知道图像ID的情况下,如何更改图像的属性?

Asp.net 在不知道图像ID的情况下,如何更改图像的属性?,asp.net,vb.net,Asp.net,Vb.net,我想使用发送到SetSectorImage子模块的扇区变量来命名正在更改的图像(图像确实存在于web表单上,我只是更改URL)。谷歌搜索只让我在MSDN上找到了一篇关于CallByName方法的文章,但我不知道它在这种情况下是否会起作用,当然,我也不知道怎么做 如果有帮助,以下是文章: 我对CallByName()做了更多的研究,发现我可以在这种情况下使用它。更改图像URL的行为: CallByName(Sector, "ImageUrl", CallType.Set, "~/Images/"

我想使用发送到SetSectorImage子模块的扇区变量来命名正在更改的图像(图像确实存在于web表单上,我只是更改URL)。谷歌搜索只让我在MSDN上找到了一篇关于CallByName方法的文章,但我不知道它在这种情况下是否会起作用,当然,我也不知道怎么做

如果有帮助,以下是文章:


我对CallByName()做了更多的研究,发现我可以在这种情况下使用它。更改图像URL的行为:

CallByName(Sector, "ImageUrl", CallType.Set, "~/Images/" + SectorStatus)

假设页面上有图像:

<asp:Image ID="Sector1" />
<asp:Image ID="Sector2" />
<asp:Image ID="Sector3" />

我相信这有点像
Page.FindById(扇区)
比使用CallByName有什么好处吗?@TrevorRowe:
FindControl
是ASP.NET的标准部分
CallByName
的级别较低(基于)<代码>反射通常被认为是较慢的
CallByName
是通用且有效的,但当存在歧义时(例如字段和同名变量),可能会产生意外的结果。
<asp:Image ID="Sector1" />
<asp:Image ID="Sector2" />
<asp:Image ID="Sector3" />
Dim myControl1 As Control = FindControl(Sector)
Dim myImage As Image = myControl1
myImage.ImageUrl = ("~/Images/" + SectorStatus)