识别所有asp:后面的代码中的图像控件

时间:2012-08-09 14:53:22

标签: asp.net vb.net

我正在尝试查找所有asp:后面的vb.net代码中的图像控件,以动态地将ImageUrl设置为相同的图像文件。这个我可以单独为每个控件做,但写10+ imgQuestion.ImageUrl = cdn.Uri.ToString & "images/question.png"行似乎有点傻。我不需要跳过任何图像控件 - 页面上的每一个都将被更改。有没有办法在不指定每个ID的情况下识别所有ID?

这些ID并不是所有类似的名称,例如“Image1”,“Image2”,而是“PaymentNote”,“search”等,所以我无法使用类似FindControl("Image" & controlNumber)的内容循环遍历所有数字

还有其他办法吗?我更喜欢将图像控件ID保持为有意义的东西。

1 个答案:

答案 0 :(得分:4)

您可以从FindControl开始递归使用Page,并且对于每个控件检查是否为<asp:Image..

我自己选择的首选语言是C#,因此我无法显示VB示例。但这是一个C#示例:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ChangeImageUrls(Page);
    }
    private void ChangeImageUrls(Control ctrl)
    {
        foreach (Control subCtrl in ctrl.Controls)
        {
            if (subCtrl is Image)
            {
                ((Image)subCtrl).ImageUrl = "...";
            }
            if (subCtrl.HasControls())
                ChangeImageUrls(subCtrl);
        }
    }
}